()
Newbie
Messaggi:
Iscritto:
|
Ciao a tutti,
vorrei usare il componente mshtml per accedere ai codici html, pero quando cerco di aggiungerlo fra i componenti mi da un errore, dicendo che non è un controllo active x.
QUalcuno sa dirmi come risolvere?
Ps mi ricordo di aver letto da qualche parte che si puo aggirare il problema digitando qualcosa dal comando esegui, pero nn ricordo.
grazie
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
metti la dll in system32 e da dos la devi registrare con il comando:
regsvr32 nome.dll
|
|
()
Newbie
Messaggi:
Iscritto:
|
quando provo a registrarlo mi da errore sul registro dll, dicendo ke il file mshtml non è un file .dll o .ocx, mentre invece è dll..
cmq ora sto usando il componente inet (cè la guida qui nel sito) pero ho un problema:
quando prendo il codice html e lo metto in una textbox o in una variabile, vedo ke non me lo prende tutto ma solo la prima parte; questo l'ho notato xke ho confrontato la textbox e il file html aperto da internet explorer. Un ulteriore conferma è che quando cerco di fare una ricerca di una parola all'interno del file html, non me la trova nonostante l'html visualizzato da IE la contiene.
grazie ancora
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Per usare la libreria HTML devi aggiungere un
Riferimento
a Microsoft HTML Object Library, che corrisponde ad un file TLB (una Type Library), precisamente al file MSHTML.TLB
Per il resto, mostra il codice che hai usato con Inet
|
|
()
Newbie
Messaggi:
Iscritto:
|
Dim ris As Integer
Private Sub Form_Load()
Inet1.OpenURL ("http://www.esl.eu/it")
Text1.Text = Inet1.OpenURL
ris = InStr(1, Text1.Text, "gaJsHost")
If ris = 0 Then
MsgBox "Riprova"
Else
MsgBox "Benvenuto"
End If
End Sub
gajshost non viene trovato nonostante sia nel codice html apribile da IE.
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
Postato originariamente da andrex91:
Dim ris As Integer
Private Sub Form_Load()
Inet1.OpenURL ("http://www.esl.eu/it")
Text1.Text = Inet1.OpenURL
ris = InStr(1, Text1.Text, "gaJsHost")
|
1) basta mettere: text1.text = inet1.openurl("http....it")
senza separarlo come fai tu.
2) Probabilmente non lo visualizza tutto perchè superi il limite di capienza della textbox, prova ad usare una richtextbox |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Puoi usare una stringa e devi prevedere un Long per la ricerca ... ) oltre al controllo della StillExecuting ...)
Codice sorgente - presumibilmente VB.NET |
Dim s As String s = Inet1.OpenURL("http://www.esl.eu/it/") Do Until Inet1.StillExecuting = False DoEvents Loop ris = InStr(s, "gaJsHost") If ris = 0 Then MsgBox "Riprova" Else MsgBox "Benvenuto" End If End Sub
|
|
|
()
Newbie
Messaggi:
Iscritto:
|
Niente ho provato come hai detto tu ma non prende lo stesso tutto il codice html.
Si ferma sempre allo stesso punto, l'altra parte di codice non se la vuole proprio prendere
Poi ho fatto un'altra cosa: ho usato la libreria html per prendere il codice html sul quale fare il controllo. in questo modo funziona correttamente quando sono loggato al sito,mentre quando non sono loggato, al momento in cui avvio la ricerca mi da 4 errori (dicendo riga:61(e altre righe), errore non specificato)che forse sono la causa del mio primo problema(che non mi visualizza tutto il codice con il metodo inet) e alla fine dei 4 errori mi visualizza correttamente il codice html fino alla fine.
A sto punto: come mai mi da errore quando cerca nel codice html quando non sono loggato? cè un modo per aggirare questo tipo di errore? (ho provato gia a cercare su manuali e internet )
e se si possono aggirare questi errore posso aggirarli anche utilizzando l'inet? (sempre che siano quelli la causa)
grazie
Qui il codice che ho usato utilizzando la libreria da te indicata:
Option Explicit
Dim objMSHTML As New MSHTML.HTMLDocument
Dim objDoc As MSHTML.HTMLDocument
Dim testo As String
Dim ris As Integer
Private Sub Command1_Click()
End
End Sub
Private Sub rcupera_Click()
Set objDoc = objMSHTML.createDocumentFromUrl("http://www.esl.eu", vbNullString)
Do While objDoc.readyState <> "complete"
DoEvents
Loop
testo = objDoc.documentElement.outerHTML
Set objDoc = Nothing
Set objMSHTML = Nothing
ris = InStr(1, testo, "open_matches")
If ris = 0 Then
MsgBox "Devi essere loggato in esl per aprire eq"
Else
MsgBox "Eq Version 2.0...loading"
End If
End Sub
@ Grg:
non funziona se prendo l'url con un unica scrittura
Ultima modifica effettuata da il 30/04/2009 alle 22:37 |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
A me il codice che ti ho mostrato funziona ... lo hai scritto cosi' come te l'ho mostrato o hai usato il textbox?
|
|