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
Visual Basic 6 - mshtml.dll
Forum - Visual Basic 6 - mshtml.dll

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
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

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 18:01
Mercoledì, 29/04/2009
metti la dll in system32 e da dos la devi registrare con il comando:
regsvr32 nome.dll

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:17
Mercoledì, 29/04/2009
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

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:53
Mercoledì, 29/04/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

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:30
Mercoledì, 29/04/2009
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.



PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 21:59
Mercoledì, 29/04/2009
Testo quotato

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

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:58
Mercoledì, 29/04/2009
Puoi usare una stringa e devi prevedere un Long per la ricerca ... ) oltre al controllo della StillExecuting ...)

Codice sorgente - presumibilmente VB.NET

  1. Dim s As String
  2.    
  3.    s = Inet1.OpenURL("http://www.esl.eu/it/")
  4.    
  5.    Do Until Inet1.StillExecuting = False
  6.       DoEvents
  7.    Loop
  8.    
  9.    ris = InStr(s, "gaJsHost")
  10.    If ris = 0 Then
  11.       MsgBox "Riprova"
  12.    Else
  13.       MsgBox "Benvenuto"
  14.    End If
  15. End Sub


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:34
Giovedì, 30/04/2009
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
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 9:12
Venerdì, 01/05/2009
A me il codice che ti ho mostrato funziona ... lo hai scritto cosi' come te l'ho mostrato o hai usato il textbox?

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