Określenie jaka zakładka i jaki URL są w danej chwili aktywne

0

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?

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;

1 użytkowników online, w tym zalogowanych: 0, gości: 1