Oppure

Loading
01/12/09 12:12
ashman
ciao a tutti ho un piccolo problema lo esporro come meglio riesco e nella maniera piu sintetica

ex:

wb.Navigate("google.it";) ' un sito vale l'altro per questo ho scelto un sito neutro
wb.Document.DomDocument.forms(0).q.value = "prova"
wb.Document.DomDocument.Forms(0).submit()

con questo codice si apre la pagina internet si inserice prova e si da invio sulla ricerca.
ma il mio problema è che in wb.Document.DomDocument.forms(0).q.value non so che il nome è q o meglio voglio riuscire a mettere al posto di q una variabile (ora inserisco il codice sbagliato ma che fa capire cosa voglio ottenere)

dim variabile As String
variabilie=q
wb.Navigate("google.it";)
wb.Document.DomDocument.forms(0).TRIM(VARIABILE).value = "prova" 'messo in maiuscolo per evidenziare
wb.Document.DomDocument.Forms(0).submit()

il mio secondo codice ovviamente non va ma si capisce che voglio sostituire il nome con una variabile, come posso fare???
Ultima modifica effettuata da ashman 01/12/09 12:13
aaa
01/12/09 14:01
Mte90
non si è capito molto che diavolo è q?
il campo di testo della pagina? una tua variabile?
il tuo esempio ha solo complicato le cose XD
aaa
01/12/09 15:50
Il Totem
Il codice .NET è gestito, quindi perchè vai ad usare un'interfaccia non gestita?
Perchè non provi con:
For Each El As HtmlElement in wb.Document.Forms(0)
  If El.TagName = "input" And El.Id = "q" Then
    El.InvokeMember("Submit()")
  End If
Next

Non so se funziona, me teoricamente dovrebbe...
aaa
01/12/09 19:26
ashman
Postato originariamente da Mte90:

non si è capito molto che diavolo è q?
il campo di testo della pagina? una tua variabile?
il tuo esempio ha solo complicato le cose XD


q è il nome dato da quelli di google per la loro textbox quindi se si da questo codice
wb.Document.DomDocument.forms(0).q.value = "prova"
si ottera la pagina di google con all'interno dove puoi cercare la parola proga

e il mio problema è che non so il nome "q" e voglio gestire quell nome tramite una variabile, posso usare la q solo se ho il nome.
ma come faccio se esempio la pagina internet ha delle textbox con nomi differenti e tramite una richiesta all utente che inserisce il nome della textbox della pagina internet in una textbox del mio programma a sostituire in
wb.Document.DomDocument.forms(0).q'(qui deve andare la mia variabile)'.value = "prova"
al posto della q il valore della mia textbox (dove l'utente ha messo "q" o un altro valore)
aaa
02/12/09 9:21
Il Totem
Non hai neanche letto il mio post...
aaa
02/12/09 11:43
ashman
l'ho letto ma non l'ho capito un gran che quindi ho tardato a rispondere per tentare di arrivarci un po con la logica prima di sparare 1000 domande nabbe
El.InvokeMember("Submit()";) al posto posso inserire El.InvokeMember("prova";) ?
dopo l'if come faccio a far inserire in quella text box un valore? el.value("prova";)?
aaa
02/12/09 16:01
Il Totem
For Each El As HtmlElement In wb.Document.Forms(0)
  If El.TagName = "input" And El.Id = "q" Then
    El.InvokeMember("Submit()")
  End If
Next


Ho sbagliato: ovviamente submit va fatto invocare al form. Oppure invochi un click sul pulsante submit.

Evidentemente TagName è il nome del tag e Id il suo id. Quindi se cerchi una textbox "prova", cercherai un tag <input> in cui l'id o il nome siano "prova". Se vuoi cambiarne il valore, dovresti provare a modificarne l'attributo value, con El.SetAttribute("value", "ciao";), anche se il risultato potrebbe non essere quello che ti aspetti...
aaa
02/12/09 16:46
ashman
ho provato e il primo errore che mi da il compilatore è
wb.Document.Forms(0) (se scrivo 0 all'interno ma da errore)
se levo lo 0 e continuo il programma non da risultati io ho inserito il codice in
Private Sub Wb_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles Wb.DocumentCompleted

questo è quanto sono riuscito a fare e pensare :cheer: non un gran che comunque sento che si puo arrivare all'obbiettivo
aaa