Czy da się z poziomu zewnętrznego (np. Delphi) określić jaka zakładka, jaki URL jest w danej chwili aktywny? Kiedys z winampem dało się łatwo po uchwycie pobierać informacje, a z oknami firefox lub chrome?
0
1
W Chrome z tego co można wyczytać w necie trzeba funkcją EnumChildWindows
szukać okien potomnych aż się znajdzie Chrome_OmniboxView
i wtedy odczytać. Jeżeli chodzi o pozostałe przeglądarki to jest uniwersalna oparta na DDE metoda (oprócz podanych można też jeszcze kilka mniej popularnych):
uses
DdeMan;
const
BROWSER_FIREFOX = 'Firefox';
BROWSER_OPERA = 'Opera';
BROWSER_IE = 'IExplore';
function GetBrowserURL(Browser: string): string;
var
DDEClient: TDDEClientConv;
begin
result:= '';
DDEClient:= TDDEClientConv.Create(nil);
try
if DDEClient.SetLink(Browser, 'WWW_GetWindowInfo') then
begin
result:= DDEClient.RequestData('0xFFFFFFFF');
if Length(result) > 0 then
begin
Delete(result, 1, 1);
result:= Copy(result, 1, Pos('"', result) - 1);
end;
DDEClient.CloseLink;
end;
finally
DDEClient.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetBrowserURL(BROWSER_FIREFOX)); //test
end;