[delphi] alle urls van firefox uitlezen (via DDE)

Pagina: 1
Acties:
  • 121 views sinds 30-01-2008
  • Reageer

  • JozyDaPozy
  • Registratie: December 2002
  • Laatst online: 17-02 08:27
Het lukt me om met onderstaande code de url van de huidige tab van Firefox uit te lezen:
code:
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
43
44
45
46
procedure GetCurrentURL(out URL, Title: string);
var
   DDEClient : TDDEClientConv;
   p, q: PChar;
   i: Integer;
begin
   DDEClient := TDDEClientConv.Create(nil);
   try
     with DDEClient do if SetLink('IExplore', 'WWW_GetWindowInfo') or
       SetLink('Netscape', 'WWW_GetWindowInfo') or
       SetLink('Mosaic', 'WWW_GetWindowInfo') or
       SetLink('Netscp6', 'WWW_GetWindowInfo') or
       SetLink('Mozilla', 'WWW_GetWindowInfo') or
       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;

echter wil ik graag ALLE url's hebben van alle tabjes.
WWW_ListWindows lijkt niet gesupport te worden door Firefox.

Heb al behoorlijk wat gezocht, maar het lukt me niet echt om iets te vinden waarmee dit mogelijk is.

Iemand enige ervaring hier mee? Het hoeft uiteraard niet met DDE, als een andere api werkt ben ik ook blij :)

edit:
Ik kan trouwens ook nergens een officiele reference vinden van de DDE-commands die FF support, wat het niet makkelijker maakt om een oplossing te vinden :|

[ Voor 23% gewijzigd door JozyDaPozy op 27-04-2006 12:42 ]


  • JozyDaPozy
  • Registratie: December 2002
  • Laatst online: 17-02 08:27
Anyone?

  • JozyDaPozy
  • Registratie: December 2002
  • Laatst online: 17-02 08:27
Zondagmiddagprogrammeurs?

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Ik gok dat dit de ondersteunde DDE-methoden zijn:

422 "WWW_OpenURL",
423 "WWW_Activate",
424 "WWW_CancelProgress",
425 "WWW_Version",
426 "WWW_RegisterViewer",
427 "WWW_UnRegisterViewer",
428 "WWW_GetWindowInfo"

Zie LXR, even gezocht naar WWW_GetWindowInfo. Ik denk dat je meer succes zou hebben door te werken met (XP)COM-objecten (voor Firefox, niet voor de meeste andere browsers).

Rustacean