Trovare indirizzo web della pagina corrente del browser attivo

di il
25 risposte

Trovare indirizzo web della pagina corrente del browser attivo

Come da titolo.

Per quanto cerchi sul web non vedo un solo esempio in VB.NET per Windows Forms, ma solo per ASP.NET. 

25 Risposte

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    Quando parli di browser intendi un'applicazione “esterna” o di un controllo webbrowser - WebView2 presente in una maschera?

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    Parlo del browser di default, che lancio con un:

    Process.Start(MyUrl)

    Dopo aver lanciato il browser vorrei seguire con un Loop i successivi url a cui si va dalla pagina di partenza. Non mi pare la luna.

    Che non si possa fare con una classe Framework 4.8 o con una delle 3.000 API di windows mi pare impossibile. Forse con delle API specifiche dei vari browser, sempre che siano compatibili con VB.NET per WinForms, ma non trovo tutorial a questo proposito.

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    Non impossibile, ma sicuramente molto complicato.
    Una volta lanciato il browser devi ricavarti il suo process id, poi l'handle della schermata, e da lì devi scansionare tutti gli oggetti presenti finchè non trovi l'handle del textbox dove è presente l'indirizzo url e leggerlo.
    Io l'ho fatto anni fa per un programma che doveva interagire con un EXE esterno, ma sinceramente non mi ricordo più i passaggi precisi da fare.

    Se invece utilizzi un tuo form dove ci metti l'oggetto WebBrowser diventa tutto molto più facile

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    Il WebBrowser è un controllo di quando Cesare passò il Rubicone e l' HTML era un' altra cosa: ci ho provato, ma nel caricare le pagine che mi interessano si generano tanti di quegli errori di Script che i link alle pagine successive non funzionano.

    Gli errori li posso bypassare, è vero, ma intanto le pagine, nel controllo, non vengono caricate correttamente come in Chrome. 

    Scansionare gli oggetti non è possibile, visto che se controllo Chrome con Spy++ di oggetti non se ne vedono. Al massimo, forse, potrei arrivare ai titoli delle schede,

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    14/12/2022 - phil2000 ha scritto:


    Il WebBrowser è un controllo di quando Cesare passò il Rubicone e l' HTML era un' altra cosa: ci ho provato, ma nel caricare le pagine che mi interessano si generano tanti di quegli errori di Script che i link alle pagine successive non funzionano.

    Non devi integrare il vecchio controllo WebBrowser basato su IE, bensì il nuovo WebView2 che sfrutta il motore di Edge.

    Vedi ad esempio questo articolo per un approfondimento.

    Ciao! :)

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    14/12/2022 - Alka ha scritto:

    Non devi integrare il vecchio controllo WebBrowser basato su IE, bensì il nuovo WebView2 che sfrutta il motore di Edge.

    Vedi ad esempio questo articolo per un approfondimento.

    Ciao! :)

    Grazie per il suggerimento.

    La documentazione per il VebWiew2 è alquanto poco “da dummies” ed in effetti io uso Chrome… ma partendo dalla tua idea sono andato alla ricerca di un “WebBrowser” per Chromium e pare proprio che Cef Sharp faccia al caso mio.

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    Io infatti di solito uso CefSharp, la parola “WebBrowser” che avevo usato era in senso generico

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    15/12/2022 - SirJo ha scritto:


    Io infatti di solito uso CefSharp, la parola “WebBrowser” che avevo usato era in senso generico

    … e allora capiti a fagiuolo! :)

    Facilissimo servirsi degli eventi ( tra cui c' è anche l' .AddressChanged) ma alcune altre funzioni sono fuori dalle mia capacità di comprensione.

    ESEMPIO: se voglio trovare un certo  testo c' è una estensione CefBrowser.Find("Testo", bool, bool, bool) … peccato che non restituisca nulla e non c' è alcuna spiegazione  sul come utilizzarla IN PRATICA per avere una qualche risposta.

    Hai una idea sul come ottenere un risultato di ricerca?

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    Io per cercare testo, ma in generale per tutte le operazioni per interagire con le pagine, utilizzo il JavaScript injection


    il sito dove stai navigando è libero oppure necessita di login ??

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    E' il sito della mia webmail, che ovviamente richiede user e password. Normalmente scarico con Thunderbird, ma per settare dello spam direttamente a monte e cancellare le millemila mail di spam che il sito trattiene direttamente ogni tanto devo aprire via web.

    Sto cercando, per divertissement, di entrare direttamente inserendo in qualche modo nel codice user e password tramite VB.NET. Ovviamente il primo passo è recuperare il testo.

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    Ciao in questo caso ti consiglio : Selenium WebDriver

    https://www.selenium.dev/

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    16/12/2022 - phil2000 ha scritto:


    E' il sito della mia webmail, che ovviamente richiede user e password. Normalmente scarico con Thunderbird, ma per settare dello spam direttamente a monte e cancellare le millemila mail di spam che il sito trattiene direttamente ogni tanto devo aprire via web.

    Sto cercando, per divertissement, di entrare direttamente inserendo in qualche modo nel codice user e password tramite VB.NET. Ovviamente il primo passo è recuperare il testo.

    Ma sei riuscito a fargli fare il login ?

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    16/12/2022 - SirJo ha scritto:

    Ma sei riuscito a fargli fare il login ?

    Si, ma NON con CefSharp... ma in modo alquanto artigianale catturando le immagini di Chrome, cercando con sub-immagini dove premere nei campi di testo e nei pulsanti, scrivendo con SendKeys.Send e premendo poi con la API SendMessage .

    Funziona, ma visto che è per divertissement volevo arrivare qualcosa di meno artigianale. Più che CefSharp mi pare più adatto allo scopo Selenium suggerito da Toki… col solito problema che non c' è documentazione se non per Einstein e Pico della Mirandola.

    Installarlo è facile con la Gestione Pachetti Nuget ma, per dire , ma non ho ancora capito se è un controllo custom o cosa, né come arrivare ad inserire il controllo nel form, sempre che sia un controllo e se non lo è… dove visualizzo le pagine del sito?

    Per installare i driver leggo, fatte le dovute importazioni: 

    2. Use the SetUpDriver() which requires a config class:       


    new DriverManager().SetUpDriver(new ChromeConfig());
    var driver = new ChromeDriver();

    è C#, ma non avrei problemi a convertire in VB.NET se in C#:

    new DriverManager().SetUpDriver(new ChromeConfig()); 

    campato in aria senza dichiarazioni avesse un senso e se scrivo, tanto per vedere cosa succede:

    dim Pippo as  new DriverManager().SetUpDriver(new ChromeConfig())

    mi dice cheE' prevista la fine dell' istruzione”.

    E siamo solo all' inizio dell' inizio. ;)

  • Re: Trovare indirizzo web della pagina corrente del browser attivo

    Mi puoi dire quale è il link al quale ti colleghi dove poi devi fare il login ??

Devi accedere o registrarti per scrivere nel forum
25 risposte