Oppure

Loading
28/02/10 17:28
gvigliani
Ciao a tutti.
La mia posizione di rookie mi spinge purtroppo a cercare soluzioni tra quanti, piu' di me, hanno esperienza in questo campo.
Volevo soltanto sapere se esiste la possibilita' di aprire una pagina web da VB6 ( e questo lo so fare) inserendo (se note) identificativo e password.
Un po' quello che fa il programma Roboform ma , dall'interno della nostra applicazione.

Ringraziamenti

Gaspare
aaa
28/02/10 17:41
GrG
allora dipende se la pagina la conosci già e quindi conosci anche i nomi dei campi username e password che metti siano: user e pass allora basta usare:

webbrowser1.document.NomeForm.user.value = "username"
webbrowser1.document.NomeForm.pass.value = "password"

e inviare i dati tramite: webbrowser1.document.NomeForm.submit

se invece è una pagina casuale che non conosci prima di tutto devi cercare quanti form sono presenti e qual'è quello con username e password, questa volta sarà più complicato, infatti dovresti scaricarti il sorgente con webbrowser1.document.body.innerHTML e analizzarlo cercando i vari form (tienine il conto partendo da 0) finchè non trovi il form con user e pass, quindi metti che il codice semplificato sia:

<form ...> 'form N°0
</form>
<form ...> 'form N°1
<form action="login.php" method=POST>'from login, N°2
<input ... />
</form>

quindi basta poi usare lo stesso codice di prima, ma al posto di usare NomeForm usa forms(X) dove X è la "posizione" del form in questo caso sarà forms(2)

N.B. Se gli input della pass e dell'username non hanno un nome ti dovrai basare su altri dati come magari l'id..
aaa
03/03/10 16:24
gvigliani
Caro amico,
sono andato alla ricerca sul web di tutto cio' che mi possa aiutare a risolvere il mio problema ma è inutile. Tutte queste procedure sono come tenute nascoste e gelosamente conservate. E' sempre stato cosi' sin da quando cercavo di programmare con il vecchio C64.
Allora, quello che sono riuscito a fare sino ad adesso è stato di inserire correttamente (conosco tutte la variabili Username e Password) l'identificativo , la password ed a cliccare in ogni sito che voglio completare. Gran bel risultato per chi come me trova tutto cio' molto ostico. Il problema reale che mi si presenta è che in molti dei siti che vorrei automatizzare ci sono dei Frame e , quasi mai, le richieste di inserimento sono in quello principale.
Le mie domande sono allora queste :idea::

1)Verificare in automatico quanti frame ci sono in una pagina
2)In quale frame sono comprese le richieste di dati per il login
3)Inserire i dati richiesti

un esempio è gradito.

Saluti

Gaspare

aaa
03/03/10 19:25
GrG
allora, come per i form ti scarichi il sorgente della pagina conti i tag <iframe ...> e sempre come per i form basta usare document.frames(X) dove X corrisponde al numero (o se vuoi puoi anche inserire il nome del frame) del frame su cui agire...

poi con:
dim url as string
url = webbrowser1.document.frames(X).src

ti ricavi l'url a cui punta il frame e magari o in un altro webbrowser o sempre nello stesso webbrowser1 carichi la nuova pagina e fai il login...

cmq per maggiori info sull'oggetto document: lmgtfy.com/
aaa
03/03/10 19:43
gvigliani
Postato originariamente da GrG:

allora, come per i form ti scarichi il sorgente della pagina conti i tag <iframe ...> e sempre come per i form basta usare document.frames(X) dove X corrisponde al numero (o se vuoi puoi anche inserire il nome del frame) del frame su cui agire...


Potresti spiegarmi questa prima parte??

Grazie

Ps: Ma stiamo parlando di Visual basic 6 ??? Mi sta' venendo un dubbio :(
Ultima modifica effettuata da gvigliani 03/03/10 19:46
aaa
03/03/10 20:09
GrG
quello che intendevo dire era che con inet ti scarichi il codice sorgente e con la funzione instr() ti trovi quanti iframe ci sono... ma lascia stare, è più veloce usare:

dim str as string
str = document.getElementsByTagName('iframe')[X]

con un ciclo incrementi X e ogni volta controlli str, finchè il valore di str è diverso da "undefined" incrementi... fino a quando non raggiungi tale valore e ti fermi e così saprai quanti iframe ci sono (ossia X iframe)...

comunque diciamo che questo non è vb qui dovresti avere conoscenze di javascript, in particolare dell'oggetto dom che ti ho consigliato di guardarti dato che per interagire con le pagine web è indispensabile...
aaa
03/03/10 20:31
gvigliani
Postato originariamente da GrG:

quello che intendevo dire era che con inet ti scarichi il codice sorgente e con la funzione instr() ti trovi quanti iframe ci sono... ma lascia stare, è più veloce usare:

dim str as string
str = document.getElementsByTagName('iframe')[X]

con un ciclo incrementi X e ogni volta controlli str, finchè il valore di str è diverso da "undefined" incrementi... fino a quando non raggiungi tale valore e ti fermi e così saprai quanti iframe ci sono (ossia X iframe)...

comunque diciamo che questo non è vb qui dovresti avere conoscenze di javascript, in particolare dell'oggetto dom che ti ho consigliato di guardarti dato che per interagire con le pagine web è indispensabile...


Caro amico ,
capisco i tuoi sforzi e ti ringrazio ma nemmeno questo pezzo di codice è in Visual Basic.
Ripeto , con assoluta sincerita', che ti ringrazio per quanto da te fatto e per la disponibilita' dimostrata.

Cordiali Saluti
aaa
03/03/10 20:48
GrG
mm.. non ho capito, quindi hai rinunciato?

perchè mi spiace, in fondo non è difficile, con un pò di impegno e buona volontà puoi risolvere :)
aaa