Entwickler-Ecke

Internet / Netzwerk - Kann mir jemand GetCurrentFirefoxURL erklären?


Delete - Mo 07.07.08 18:29
Titel: Kann mir jemand GetCurrentFirefoxURL erklären?
Moin!
ich verstehe diese procedure nicht ganz:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
procedure GetCurrentFirefoxURL(out URL, Title: string);
var
   DDEClient : TDDEClientConv;
   p, q: PChar;
   i: Integer;
begin
   DDEClient := TDDEClientConv.Create(nil);
   try
     with DDEClient do
       if SetLink('Firefox''WWW_GetWindowInfo'then
       p := RequestData('0xFFFFFFFF')
     else raise Exception.Create('Could not establish browser DDE link');
     if Assigned(p) then try
       q := p;
       Assert(q^ = '"');
       SetLength(URL, StrLen(q));
       Inc(q);
       i := 0;
       while q^ <> '"' do begin
         if (q^ = '\'and (q[1] = '"'then Inc(q);
         Inc(i);
         URL[i] := q^;
         Inc(q);
       end;
       SetLength(URL, i);
       SetLength(Title, StrLen(q));
       i := 0;
       Inc(q, 3);
       while q^ <> '"' do begin
         if (q^ = '\'and (q[1] = '"'then Inc(q);
         Inc(i);
         Title[i] := q^;
         Inc(q);
       end;
       SetLength(Title, i);
     finally
       StrDispose(p);
     end else raise Exception.Create('Could not fetch browser data');
   finally
     DDEClient.Free;
   end;
end;

wo wird abgefragt wie die url ist? Und wenn ich die procedure benutze muss ich zwei strings angeben.Was für welche?


F34r0fTh3D4rk - Mo 07.07.08 18:32

p := RequestData('0xFFFFFFFF') scheint die Daten abzufragen, dann wird p q zugewiesen und die Daten dann über Title[i] := q^; ausgegeben.

mfg


Delete - Mo 07.07.08 18:40

Ahhh!Ok hab jetzt alles verstanden.


F34r0fTh3D4rk - Mo 07.07.08 18:50

Du musst auch keine Strings angeben, sondern die Variablen, die die Werte erhalten sollen, die du brauchst.

mfg


Delete - Mo 07.07.08 18:58

Ja.ich weiß,ich hab mir einfach die procedure mal genauer angeguckt. Hilft auch!