Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb.NET]problemino complicato
Forum - C# / VB.NET - [vb.NET]problemino complicato

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
ashman (Normal User)
Pro


Messaggi: 71
Iscritto: 03/10/2009

Segnala al moderatore
Postato alle 13:12
Martedì, 01/12/2009
ciao a tutti ho un piccolo problema lo esporro come meglio riesco e nella maniera piu sintetica

ex:

wb.Navigate("http://www.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("http://www.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 il 01/12/2009 alle 13:13
PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 15:01
Martedì, 01/12/2009
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

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:50
Martedì, 01/12/2009
Il codice .NET è gestito, quindi perchè vai ad usare un'interfaccia non gestita?
Perchè non provi con:
Codice sorgente - presumibilmente VB.NET

  1. For Each El As HtmlElement in wb.Document.Forms(0)
  2.   If El.TagName = "input" And El.Id = "q" Then
  3.     El.InvokeMember("Submit()")
  4.   End If
  5. Next


Non so se funziona, me teoricamente dovrebbe...

PM Quote
Avatar
ashman (Normal User)
Pro


Messaggi: 71
Iscritto: 03/10/2009

Segnala al moderatore
Postato alle 20:26
Martedì, 01/12/2009
Testo quotato

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)

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:21
Mercoledì, 02/12/2009
Non hai neanche letto il mio post...

PM Quote
Avatar
ashman (Normal User)
Pro


Messaggi: 71
Iscritto: 03/10/2009

Segnala al moderatore
Postato alle 12:43
Mercoledì, 02/12/2009
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")?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:01
Mercoledì, 02/12/2009
Codice sorgente - presumibilmente VB.NET

  1. For Each El As HtmlElement In wb.Document.Forms(0)
  2.   If El.TagName = "input" And El.Id = "q" Then
  3.     El.InvokeMember("Submit()")
  4.   End If
  5. 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...

PM Quote
Avatar
ashman (Normal User)
Pro


Messaggi: 71
Iscritto: 03/10/2009

Segnala al moderatore
Postato alle 17:46
Mercoledì, 02/12/2009
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

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:35
Giovedì, 03/12/2009
Dà errore... umh... posso provare a vedere nella sfera di cristallo che errore vien fuori. Oppure potresti dirmelo tu, tanto per risparmiarmi la fatica...

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo