Oppure

Loading
29/04/09 15:42
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
29/04/09 16:01
GrG
metti la dll in system32 e da dos la devi registrare con il comando:
regsvr32 nome.dll
aaa
29/04/09 17:17
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
29/04/09 17:53
theprogrammer
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
aaa
29/04/09 18:30
Dim ris As Integer

Private Sub Form_Load()
Inet1.OpenURL ("esl.eu/…;)
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.


29/04/09 19:59
GrG
Postato originariamente da andrex91:

Dim ris As Integer

Private Sub Form_Load()
Inet1.OpenURL ("esl.eu/…;)
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
aaa
29/04/09 20:58
theprogrammer
Puoi usare una stringa e devi prevedere un Long per la ricerca ... ) oltre al controllo della StillExecuting ...)

   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
aaa
30/04/09 20:34
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("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 30/04/09 20:37