Pobranie adresu URL z przegladarek WWW C#, C++

0

Witam
Chciałbym pobrać URL z przegladarek internetowych do swojej aplikacji (aktualnie otwarta zakladka)
Mam tutaj namyśli "chrome, firefox, opera)
Dużo jest tematów na różnych forach na ten temat jednak zaden nie rozwiązuje mojego problemu nie uzywając dll.

co do kodu z chrome do pewnego czasu działała funkcja podana niżej teraz niestety nie ma juz "Chrome_OmniboxView" sprawdzalem spy++
Dodatkowo nie widze w spy++ nigdzie calego adresu url z chrome. Czy ktoś jest wstanie pomoc mi rozwiązać ten problem?

        public static string getChromeURL()
        {
            uint MAX_PATH = 255;
            IntPtr hChrome = (IntPtr)1000, hAddressBox;
            Process[] process = Process.GetProcesses();
            foreach (var p in process)
            {
                if (p.MainWindowTitle != "")
                {
                    if (p.ProcessName == "chrome")
                    {
                        hChrome = p.MainWindowHandle;
                    }
                }
            }

            hAddressBox = FindWindowEx(hChrome, IntPtr.Zero, "Chrome_OmniboxView", IntPtr.Zero);
            StringBuilder sb = new StringBuilder(256);

            SendMessage(hAddressBox, WM_GETTEXT, (IntPtr)MAX_PATH, sb);
            string s = sb.ToString().Trim(new Char[] { ' ', '\0', '\n' });
            return CutUrl("http://"+s.Trim());
        }

Co do firefox-a i chroma znalazlem biblioteke "ndde" która działa dobrze jednak raczej nie chce używać gotowca tylko nauczyć sie pobierać te dane.

Szukałem na forach i wiem ze zadna funkcja WinAPI nie działa dobrze z firefox-em i operą. Prosze o podpowiedz jak moge te dane wyciągnąć.
Język dla mnie bez znaczenia czy to bedzie c, c++ czy c# - napisalem tą funkcje w c# bo apka jest w c#.

0

Najlepiej będzie napisać wtyczki do przeglądarek, które ci ten adres w jakiś sposób wystawią. Będzie to z pewnością opcja bardziej odporna na zmiany w przeglądarkach niż np. wyciąganie tej informacji bezpośrednio z pamięci. Sprawdź, które przeglądarki obsługują DDE, znajdź sobie opis tego protokołu i możesz zaimplementować go sam.

0

Myślałem już o pluginach problem w tym że zawsze można je wyłączyć co mi się nie podoba. Chcialbym mieć pewność ze te dane dostane zawsze... O protokole DDE poczytam jak najbardziej. A jak rozwiązać problem z chromem? Z tego co wiem nie obsługuje DDE a danych nie mam jak pobrać z tej przeglądarki. Skoro spy++ nic nie widzi to ja tego też przez winapi chyba nie wyciągne.
Chyba ze jest jeszcze inna alternatywa o której nie pomyślałem.:)

0

Myślałem już o pluginach problem w tym że zawsze można je wyłączyć co mi się nie podoba.

Jak użytkownikowi nie będzie się podobał twój program to też go odinstaluje. Jak też chcesz mu w tym przeszkodzić, bo robisz jakieś malware to nie wiem czy jest sens ci w czymkolwiek pomagać.

0

Program pisze pod swoja przyszłą firmę - chce mieć kontrole nad tym na jakie użytkownicy strony wchodzą - intranetowe czy inne by później zrobić statystyki ile kto pracuje a ile przegląda dziwne strony. Drugim głównym celem tej aplikacji jest moja nauka. Gdyby tak nie było pewnie bym użył gotowego rozwiązania bo jest takie nie jedno.

0

Użyj w takim razie czegoś w rodzaju transparentnego proxy na bramie internetowej.

0

po co takie cyrki robić rodem z PRL, lata mijają a polsa rzeczywistość stoi w miejscu, lepiej napier... ludzi kijem, niż zachęcać marchewką

A jeśli nie chcecie żeby użytkownicy używali mordoksiążki etc. to zróbcie blokadę na routerze czy firewallu i tyle. Nie wiem po co wymyślać koło i to kanciaste.

0
O-to-to napisał(a):

po co takie cyrki robić rodem z PRL, lata mijają a polsa rzeczywistość stoi w miejscu, lepiej napier... ludzi kijem, niż zachęcać marchewką

A jeśli nie chcecie żeby użytkownicy używali mordoksiążki etc. to zróbcie blokadę na routerze czy firewallu i tyle. Nie wiem po co wymyślać koło i to kanciaste.

zgadzam się. Lepiej jest uwalić fb/twittera i inne podobne serwisy poprzez odpowiednio skonstruowane acl'ki.

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