[WinApi] Pobieranie adresu URL z przeglądarek (Chrome,FireFox,Opera)

0

Witam serdecznie,

Mam następujący problem i wygląda na to, że samemu sobie nie poradzę. Problem dotyczy przeglądarki Chrome moim celem jest wyciągnięcie adresu URL z przeglądarki.

Tworzę sobie funkcje przeszukującą okna i classname child-ów w poszukiwaniu interesującej mnie pozycji. Szukam wartości URL.

...
bool wyliczDzieciaki(HWND hwnd, LPARAM lParam) {
    char classname[255];
    char tekst[255];
    GetClassName(hwnd, classname, 255);
    GetWindowText(hwnd, tekst, 255);
    MessageBox(0, classname, "classname", MB_OK | MB_TOPMOST);
    MessageBox(0, tekst, "tekst", MB_OK | MB_TOPMOST);
}

BOOL CALLBACK enumWindowsy(HWND hwnd, LPARAM lParam) {
    char tytul[255];
     HWND child;
    GetWindowText(hwnd, tytul, 255);
    if (strstr(tytul, "Chrome")) {
        MessageBox(0, tytul, "tytul", MB_OK | MB_TOPMOST);
        EnumChildWindows(hwnd, (WNDENUMPROC) wyliczDzieciaki, (LPARAM) tytul);
    }
    return TRUE;
}

void wyciagnijURLa() {

    char tytul[] = {"Desktop"};

    EnumWindows((WNDENUMPROC) enumWindowsy, (LPARAM) tytul);
}
...
 

Jednak dostaję tylko tytuły lub puste chary. Gdzie robię błąd? Źle odwołuję się do kontrolki ?
Jak pobrać w taki sposób URL ?

Wszelki nakierowania będą pomocne.

Dziękuje z góry

0

A może by tak wyciągnąć adres przechwytując HTTPRequest?

0

HTTPRequest spełniło by w jakimś stopniu swoją rolę jeśli chciałbym sniffować połączenia chroma z internetem. Jednak takie połączenie następuje tylko w momencie wywołania urla.
Moim celem jest ściągniecie adresu w momencie wywołania takiego zdarzenia pod przyciskiem okna osobnej aplikacji (gdzie przeglądarka w tle jest gdzieś otwarta i jest w stanie "spoczynku" ). Czyli tak jakby statyczne wyciąganie textu z classy "edita" chroma czyli Chrome_OmniboxView.

0

Jest pewne prehistoryczne API Windows, które pozwala właśnie na pobranie adresu z aktywnego okna przeglądarki i większość popularnych przeglądarek to implementowała. Niestety nie mogę sobie przypomnieć jego nazwy, ale jak poświęcisz chwilę na poszukiwania w Google to na pewno znajdziesz.
Innego uniwersalnego sposobu nie ma, za pomocą wyszukiwania okienek adresu nie pobierzesz chociażby z Firefoksa, bo ma własny toolkit UI (i zdaje się, że z Opery również). Dobrym rozwiązaniem, o ile masz uprawnienia administracyjne będzie zainstalowanie wtyczki / rozszerzenia dla każdej z przeglądarek.

0

Dzięki za informację. Jesteś w stanie przypomnieć sobie chociaż jakiś element z tej funkcji (żebym mógł zawęzić zakres poszukiwań)? Szukam intensywnie jednak wszędzie albo chcą uzywać DDE albo wykorzystują znane mi funkcje winapi , które jednak nie dają efektu.

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