Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006

    [VB6] Leggere HTML di una pagina web aperta in internet explorer

    Ho la necessità di leggere l'html e l'indirizzo di una pagina web aperta in internet explorer.
    non ho alternative possibili al leggere direttamente l'html da IE.

    con FindWindow trovo la finestra dell'IE, con ActivateWindow la rendo attiva e poi? con la SendKeys riesco a visualizzare e copiare tutto l'html nel mio programma??

    e sopratutto....come faccio a sapere l'indirizzo della pagina?? tenendo presente che non posso prenderlo dalla barra degli indirizzi (non per forza è reale/completo) ma devo usare il tasto DX-->propietà


    some one can help me?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    dovresti creare un oggetto di tipo internet explorer, interfacciarti alla dll di IE (shdocvw.dll), ciclare per le finestre aperte fino a trovare quella che ti interessa, ti recuperi l'handle, lo assegni al tuo oggetto IE, a quel punto puoi controllare la finestra di IE tramite il tuo oggetto IE e recuperare il contenuto della pagina e cosa c'è scritto nella barra degli indirizzi.
    Ans.

  3. #3
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    Originariamente inviato da ans
    dovresti creare un oggetto di tipo internet explorer, interfacciarti alla dll di IE (shdocvw.dll), ciclare per le finestre aperte fino a trovare quella che ti interessa, ti recuperi l'handle, lo assegni al tuo oggetto IE, a quel punto puoi controllare la finestra di IE tramite il tuo oggetto IE e recuperare il contenuto della pagina e cosa c'è scritto nella barra degli indirizzi.
    prima che comincio a studiarla questa soluzione mi serve capire una cosa:

    gli eventi si verificano "parallelamente" nel browser e nel programma giusto?? cioè...in questo modo posso anche "pilotare" direttamente la finestra di IE? nzomma se ad esempio faccio un refresh....lo vedo solo nel programma VB o anche nel browser?

    ultima cosettina:

    qualche link? n po' di codice? aiutare un piccolo pampin affamato di codice.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    una volta feci un programmino che recuperava tutti gli indirizzi digitati dalle finestra IE aperte, restava in ascolto in background. Per gli eventi la dichiarazione del tuo oggetto IE dovresti farla con with events, e quindi essere in grado di gestirli.

    Aggiungi un riferimento a Microsoft Internet Controls e Microsoft HTML Object Library, di seguito un piccolo esempio.

    codice:
    Dim SWs As SHDocVw.ShellWindows 
    Dim IE As SHDocVw.InternetExplorer 
    
    Set SWs = New ShellWindows 
      
    For Each IE In SWs
        If TypeOf IE.Document Is HTMLDocument Then 
          ' es. recupera IE.LocationName 
        End If 
    Next
    
    Set SWs = Nothing
    Non ti serve altro, io controllavo qualsiasi applicazione aperta, se era ti tipo IE e mi interessava recuperavo l'handle, quindi:

    codice:
    Public Function IEDocument() As Object
        Dim SWs As New SHDocVw.ShellWindows
        Dim IE As SHDocVw.InternetExplorer
        
        Set IEDocument = Nothing
        
        For Each IE In SWs
            If IE.HWND = HWND Then
                Set IEDocument = IE.Document
            End If
        Next
    End Function 
    
    Public Function IEObject() As Object
        Dim SWs As New SHDocVw.ShellWindows
        Dim IE As SHDocVw.InternetExplorer
        
        Set IEObject = Nothing
        
        For Each IE In SWs
            If IE.HWND = HWND Then
                Set IEObject = IE
            End If
        Next
    End Function
    a te questo non dovrebbe servire.
    Ans.

  5. #5
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    ti ringrazio....direi che ci sono quasi. mi rimangono 2 problemi:

    1) c'è modo di sapere il reale indirizzo della pagina?? tanto per intenderci non quello che vedi sulla barra degli indirizzi ma quello che vedi facendo click con il testo destro --> propietà --> indirizzo (URL)

    2) c'è modo di vedere l'html della pagina?


    edit:
    ci aggiungo il 3

    mica mica mica sarebbe pure possibile fare un file-->salva con nome??

    azzzie 100000000

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    dai un'occhiata all'oggetto e alla sua documentazione...
    http://msdn.microsoft.com/library/de...eflist_cpp.asp

    .LocationURL dovrebbe essere per il punto 1 (guarda cmq la documentazione, c'è anche una proprietà path che non ricordo)

    per il punto 2 e 3, ti ho già fatto l'esempio di come ottenere un oggetto di tipo Document (la proprietà per recuperare tutto il contenuto è .Document.documentElement.OuterHTML)
    con il contenuto della pagina, puoi salvarlo in un file di testo ma se hai bisogno di salvare altro (css, immagini) il comando SaveAs del browser lo richiami tramite ExecWB e la costante da utilizzare è OLECMDID_SAVEAS (4). Questo pero' porta ad aprire la finistra di salvataggio.

    qua c'è qualcosa di interessante:
    http://www.vbcity.com/page.asp?p=cha...oks-wrox-vbweb
    Ans.

  7. #7
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    grazie 1000 ancora...ora devo solo capire come fare con i frame....se ce ne sono così mi legge solo l'html del principale e a me serve tutto

  8. #8
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    Originariamente inviato da s|n3
    grazie 1000 ancora...ora devo solo capire come fare con i frame....se ce ne sono così mi legge solo l'html del principale e a me serve tutto
    uppo...non riesco a trovare soluzione per i frame

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.