Entwickler-Ecke

Internet / Netzwerk - PROTOKOLL:// auslesen


MDX - Mi 17.09.08 10:21
Titel: PROTOKOLL:// auslesen
Hallo, ich habe in der Windows-Registery das Protokoll "PR://" registriert, wenn man nun im Browser "PR://ABC" eingibt, öffnet sich mein Programm, wie kann ich nun das "ABC" auslesen?

THX
MDX


matze - Mi 17.09.08 12:05

Soweit ich weiß, wir das als ganz normale Parameter übergeben.
Du kannst also mit paramstr(x) drauf zugreifen.


MDX - Fr 31.10.08 23:06

Und was muss bei x hin?

Registriert ist das Protokoll mit: "ABCEF GHIJ KL" bei 1 kommt: "ABCDEF" bei 2: "GHIJ" und bei 3: "KL" bei 4: garnix.

Wie kann ich nun das auslesen?


alias5000 - Fr 31.10.08 23:17

X kann in einer SChleife die Werte 1 bis ParamCount annehmen, damit bekommst du alles.

Gruß
alias5000


MDX - Sa 01.11.08 04:38

Sorry für die frage:
Was genau muss ich jetzt machen :wink: ?


GTA-Place - Sa 01.11.08 10:14


Delphi-Quelltext
1:
2:
3:
Params := '';
for X := 1 to ParamCount do
  Params := Params + ParamStr(X) + ' ';

War das jetzt schwer?


MDX - Sa 01.11.08 14:21

Ja, weil ich mich noch nicht wirklich mit schleifen beschäftigt hab (Delphi)

Es geht aber immer noch nicht:

Also der Link auf der Website ist: PR://123
Wenn das Programm geöffnet wird, kommt nur "PROGRAMNAME VERSION" so wie ich den Typ registriert hab:



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm5.FormCreate(Sender: TObject);
var regist: TRegistry;
begin
with TRegistry.Create do try
 RootKey:=HKEY_CLASSES_ROOT;
 if not OpenKey('\pr',True) then exit; // Fehler beim Zugriff
 WriteString('URL Protocol','');
 if not OpenKey('\pr\shell\open\command',True) then exit; // Fehler
 WriteString('','"'+Application.ExeName+'" PROGRAMMNAME VERSION ');
finally
 CloseKey;
 Free;
end;
end;


Kann auch sein das hier was fehlt


jaenicke - Sa 01.11.08 15:38

%1 ist der Parameter, der in die Registry noch in die auszuführende Kommandozeile muss. Dieser wird dann durch die Parameter ersetzt.

Das würde ich statt PROGRAMMNAME VERSION erwarten, wenn du das brauchst eben dahinter.


Yogu - Sa 01.11.08 17:24

Du kannst für die Parameter keine Namen vergeben. Ich denke, genau das wolltest du mit "PROGRAMMNAME VERSION" erreichen. Windows übergibt diese Parameter einfach so, wie sie drin stehen. Wenn sie ersetzt werden sollen, musst du wie schon erwähnt das Prozentzeichen mit einer Zahl - im Normallfall 1 - einsetzen.

Um trotzdem an den Programmname und die Version zu kommen, musst du die URL so aufbauen:


Quelltext
1:
PR://programmname=abc&version=123                    

Den Text nach dem PR:// kannst du ganz normal mit ParamStr(1) auslesen - du braucht nicht mal eine Schleife.