ok, jetzt hab ich den Hinweis von EWeiss verstanden und damit klappts dann auch, wenn ich den von Lucky verlinkten Code entsprechend ergänze:
Delphi-Quellcode:
function getpath: String;
var
ShellWin: IShellWindows;
i: Integer;
ClName: array[0..64]of Char;
Pfad: AnsiString;
wnd: hwnd;
begin
wnd := GetForegroundWindow;
ShellWin := CoShellWindows.Create;
for i := 0 to Pred(ShellWin.Count) do
with ShellWin.Item(i) as IWebBrowser2 do begin
GetClassName(hwnd, ClName, SizeOf(ClName));
if wnd = hwnd then begin
if (string(ClName)= 'ExploreWClass') or (string(ClName)= 'CabinetWClass') then
begin
Pfad:= StringReplace(LocationURL, 'file:///', '', [rfReplaceAll, rfIgnoreCase]);
Pfad:= StringReplace(Pfad, '/', '\', [rfReplaceAll]);
Pfad:= StringReplace(Pfad, '%20', ' ', [rfReplaceAll]);
if DirectoryExists(Pfad) then
Result := IncludeTrailingPathDelimiter(Pfad);
end;
end;
end;
end;
liefert den Pfad des aktiven Fensters.
Danke an alle, Problem gelöst.