PDA

View Full Version : [VB]Ottenere l'URL di una pagina Web aperta


CIUFFO
27-12-2005, 19:03
E' possibile ottenere da VB o con le API l'URL di una pagina Web aperta?
Utilizzo AppActivate "titolo nella barra del titolo della finestra" per attivare la pagina web e SendKeys per inviare ad essa dei dati, ma questa procedura non riesce a distinguere le varie sezioni della pagina Web.
In sostanza dovendo inviare dei dati diversi ad ogni sezione devo distinguere da http://20.15.5.208/cerca.jsp a http://20.15.5.208/tovata.jsp.

CIUFFO
28-12-2005, 13:08
up

CIUFFO
30-12-2005, 11:42
help :cry:

okay
30-12-2005, 11:51
E' possibile ottenere da VB o con le API l'URL di una pagina Web aperta?
Utilizzo AppActivate "titolo nella barra del titolo della finestra" per attivare la pagina web e SendKeys per inviare ad essa dei dati, ma questa procedura non riesce a distinguere le varie sezioni della pagina Web.
In sostanza dovendo inviare dei dati diversi ad ogni sezione devo distinguere da http://20.15.5.208/cerca.jsp a http://20.15.5.208/tovata.jsp.


puoi spiegati meglio?

CIUFFO
30-12-2005, 12:54
Utilizzo un DB di Access per compilare dei form contenuti in un sito web.
Con AppActivate "titolo nella barra del titolo della finestra" per attivare la pagina web e SendKeys per inviare ad essa i dati contenuti nella mia maschera, ma questa procedura non riesce a distinguere le varie sezioni della pagina Web.
In sostanza mi serve un metodo che sia in grado di riconoscere l'URL della pagina web aperta, il quale identifica il form aperto in quel momento
per esempio:
http://20.15.5.208/cerca.jsp è l'URL di un form che si chiama 'cerca'
http://20.15.5.208/trovata.jsp. è l'URL di un form che visualizza il risultato
e così via...(ci sono diversi form)
I dati che invio con SendKeys sono diversi per ogni form perciò la mia routine per sapere quale sequenza di tasti deve inviare dovrebbe riconoscere il form Web aperto in quel momento.
Ora utilizzo tanti pulsanti quanti sono i form web ed ogni pulsante invia la sequenza di tasti giusta solo se è aperto il form web corrispondente, se invece la mia routine fosse in grado di riconoscere il form web sarebbe tutto più "intelligente".

okay
30-12-2005, 13:09
Utilizzo un DB di Access per compilare dei form contenuti in un sito web.
Con AppActivate "titolo nella barra del titolo della finestra" per attivare la pagina web e SendKeys per inviare ad essa i dati contenuti nella mia maschera, ma questa procedura non riesce a distinguere le varie sezioni della pagina Web.
In sostanza mi serve un metodo che sia in grado di riconoscere l'URL della pagina web aperta, il quale identifica il form aperto in quel momento
per esempio:
http://20.15.5.208/cerca.jsp è l'URL di un form che si chiama 'cerca'
http://20.15.5.208/trovata.jsp. è l'URL di un form che visualizza il risultato
e così via...(ci sono diversi form)
I dati che invio con SendKeys sono diversi per ogni form perciò la mia routine per sapere quale sequenza di tasti deve inviare dovrebbe riconoscere il form Web aperto in quel momento.
Ora utilizzo tanti pulsanti quanti sono i form web ed ogni pulsante invia la sequenza di tasti giusta solo se è aperto il form web corrispondente, se invece la mia routine fosse in grado di riconoscere il form web sarebbe tutto più "intelligente".


Non mi trovo in postazione quando ci sarò ti faccio sapere...

Mi ricordo che ho fatto una cosa simile utilizzando il controllo webbrowser e nei metodi del controllo webbrowser mettevo gli url da identificare (in quanto il programma non può sapere i link) e se mi ritornava l'URL in questione lo intercettavo (per te sarebbe il link del form aperto in quel momento) nel controllo webbrowser tramite if e poi mi regolavo da codice di conseguenza per i miei scopi.

In sostanza dei avere delle var che identificano i link degli URL se no il programma non li può sapere quali sono questi riferimenti...

ciao

CIUFFO
30-12-2005, 13:23
Ho trovato il controllo webroswer ma non ho capito come si usa
potresti mandarmi un db di esempio?

okay
30-12-2005, 23:02
Ho trovato il controllo webroswer ma non ho capito come si usa
potresti mandarmi un db di esempio?

Sempre che abbia capito cosa devi fare...

Metti il controllo webbrowser e fallo grande come il form, sul controllo poi ci clicchi sopra e puoi vedere le sue funzioni all'interno.

Per utilizzare il controllo come pagina web basta che usi questo:
WebBrowser1.Navigate ("http://www.hwupgrade.it/")
puoi metterlo in bottone.click

e vedrai sul controllo la pagina di default di hwupgrade.

Invece nella funzione:
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean) puoi per esempio intercettare la pagina web dove ti linki esempio:

If URL = "http://www.hwupgrade.it/" Then
'...fai questo
endif

Ora prova questo:

Metti in un bottone questo:
WebBrowser1.Navigate ("http://www.hwupgrade.it/")

Ora se clicchi sul bottone il comando WebBrowser1.Navigate ti linkerà all'URL http://www.hwupgrade.it/, metti un stop all'interno di della funzione:
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)

If URL = "http://www.hwupgrade.it/" Then
stop 'vero
else
stop 'false
endif

Ora se hai degli url che apri con il comando Navigate, puoi intercettare con l'istruzione URL la pagina WEB che hai aperta e di conseguenza se lURL è vero allora fai... aggiorni elimini cancelli ecc ecc. il tuo db ecc ecc.

spero di esserti stato di aiuto

ciao

CIUFFO
31-12-2005, 12:20
Intanto grazie delle spiegazioni

Vedi questo link:
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp

Io vorrei fare quello che fa Web browser ma direttamente su internet explorer cioè senza utilizzare il controllo web browser in una maschera.
E' possibile ottenere il controllo di Internet Explorer con l'automazione?
Leggendo la documentazione del link riportato di sopra sembrerebbe di sì ma non ho capito come si fà ad ottenere l'handle dell'oggetto Internet Explorer.

Ciao

okay
31-12-2005, 13:16
Intanto grazie delle spiegazioni

Vedi questo link:
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp

Io vorrei fare quello che fa Web browser ma direttamente su internet explorer cioè senza utilizzare il controllo web browser in una maschera.
E' possibile ottenere il controllo di Internet Explorer con l'automazione?
Leggendo la documentazione del link riportato di sopra sembrerebbe di sì ma non ho capito come si fà ad ottenere l'handle dell'oggetto Internet Explorer.

Ciao



Ha ho capito vuoi farlo non sul controllo browser ma su explorer.

Cerca su google per VBAscript
oppure puoi utilizzare una dll come per operare per pagine asp esterne dove puoi lavorare tra il tuo programma exe, la dll e la pagina asp e i db.

sul web ci sono molti esempi

edit: non sò cosa devi fare con il tuo programma ... ma ricorda che per raggiungere uno scopo è sempre meglio fare le cose + semplici


ciao