Post by A.SchneiderWie kann ich an das richtige Firefox Fenster senden?
Du sendest nicht an ein Firefox-Fenster, sondern an den
Firefox-DDE-Dienst, der im Hintergrund läuft.
Meine Funktion dafür (auf Firefox spezialisiert):
---
function DDEgetURLfromFirefox : WideString;
var
aw : PChar;
DDEdienst, DDEtopic, DDEmessage : string;
DDEconv : TDdeClientConv;
begin
Result := '';
DDEconv := TDdeClientConv.create(frmApp);
TRY
DDEdienst := 'Firefox';
DDEtopic := 'WWW_GetWindowInfo';
DDEmessage := '0xFFFFFFFF';
if DDEconv.SetLink(DDEdienst, DDEtopic) then begin
aw := DDEconv.RequestData(DDEmessage);
Result := StrPas(aw);
StrDispose(aw);
DDEconv.CloseLink;
end
else SD2(DDEdienst, 'konnte DDE nicht öffnen');
FINALLY
DDEconv.Free;
END;
end;
---
Der Antwort-String enthält URL und Titel.
Post by A.SchneiderAlso zum Beispiel beim IE suche ich mir das aktuelle aktive Fenster
Handle und kann dem IE dann entsprechend die URL senden.
Beim IE nutze ich möglichst COM:
---
function COMgetURLfromIE(BrowserPath: WideString;
var Titel: WideString) : WideString;
var
i : Integer;
ShWindows : ShellWindows;
IE : InternetExplorer;
Dok : OLEVariant;
begin
Result := '';
SHWindows:= CoShellWindows.Create;
for i:=0 to (ShWindows.Count-1) do begin
IE := SHWindows.item(i) as InternetExplorer;
if (WideCompareText(IE.FullName, BrowserPath)=0) then begin
Dok := IE.Document;
Titel := Dok.Title;
Result := IE.LocationURL;
break;
end;
end;
end;
---
IE unterstützt auch DDE, liefert darüber aber nur die URL, nicht den
Titel der Seite.
DDE klappt bei mir leider nicht mit Unicode.
BTW: Ich bin kein DDE-Experte, sondern habe mir die Infos auch nur
zusammengesucht und ausprobiert.
Gruß
Michael
--
bookkey - Bookmarks by Keywords.
Bookmark manager with a new way to handle a large number of keywords.
http://www.bookkey.com