Ciao,
io posso dirti come interagire con le istanze di IE (n.b: solo IE) ed i documenti in esse caricati...
Ora non ho molto tempo per le spiegazioni... in 2 parole posso
dirti che, grazie alla libreria Microsoft Internet Controls
puoi mettere la tua applicazione in ascolto di "nuove istanze" di IE, determinare che tipo di documento caricano (cartelle o doc.HTML) e referenziare le pagine Web in esse caricate.
Utilizzando la libreria MS HTML Object Library puoi referenziare i documenti HTML e interagire con essi, modificandone anche il contenuto.
Oltra a questo puoi anche interagire col Browser.
Sempre perchè non ho tanto tempo, ti posto del codice che avevo postato tempo fa in risposta ad una domanda simile alla tua. Dagli un'occhiata, se hai domande chiedi pure.
' Richiede riferimenti a Microsoft HTML Object Library e Microsoft Internet Controls.
Option Explicit
Private Declare Function EnableWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Private WithEvents ShWin As SHDocVw.ShellWindows ' ShellWindows
Private WithEvents IE As SHDocVw.InternetExplorer ' IE
'
Private Sub IE_DownloadBegin()
' Questo evento di IE si verifica all'avvio del download del documento.
' Da qui non è possibile riferirsi al documento in quanto non ancora caricato,
' ma si può operare sul Browser
' L'evento successivo è "IE_DownloadComplete"
End Sub
'
Private Sub IE_DownloadComplete()
' Questo evento di IE si verifica quando il documento è stato downloadato completamente.
' Imposto un riferimento al documento caricato e opero su di esso
Dim HTMLDoc As HTMLDocument ' Documento
Dim HTMLEL As IHTMLElement ' Elemento del documento
Dim j As Long
Set HTMLDoc = IE.document ' Riferimento al documento caricato da IE
' Modifico il testo nella statusbar e disabilito temporaneamente la Window di IE
IE.StatusText = "Attendere, " & App.EXEName & " sta esaminando il documento..."
EnableWindow IE.hwnd, False
Cls
' Ciclo sulla collection ALL in cui, ogni elemento è un'oggetto di tipo IHTMLElement
For j = 0 To HTMLDoc.All.length - 1
Set HTMLEL = HTMLDoc.All.Item(j)
' Stampo a video informazioni sull'elemento in questione
Print "Trovato tag: " & HTMLEL.tagName
Print "outerHTML: " & HTMLEL.outerHTML
Next j
' Modifico il testo nella status e abilito nuovamente la Window di IE
IE.StatusText = App.EXEName & " ha esaminato il documento."
EnableWindow IE.hwnd, True
End Sub
Private Sub IE_OnQuit()
' Quando termina l'istanza di IE, libero risorse
Set IE = Nothing
End Sub
'
Private Sub ShWin_WindowRegistered(ByVal ICookie As Long)
' Questo evento di ShellWindows si scatena all'avvio di ogni nuova istanza di IE
' Controllo l'ultima istanza (quella appena avviata) nella Collection Count
' e, se si tratta di un documento HTML, imposto un riferimento all'istanza stessa.
' Da questo momento il browser comincia il download del documento:
' verrà quindi eseguita la routine di evento "IE_DownloadBegin"
If TypeOf ShWin.Item(ShWin.Count - 1).document Is HTMLDocument Then Set IE = ShWin.Item(ShWin.Count - 1)
End Sub
'
Private Sub Form_Load()
' Istanzia ShellWindows.
' Appena verrà aperta una pagina Web, verrà eseguita la routine di evento "ShWin_WindowRegistered"
Set ShWin = New SHDocVw.ShellWindows
Me.AutoRedraw = True
End Sub
La proprietà outerHTML di IHTMLElement restituisce tutto ciò che si trova tra il tag di apertura e quello di chiusura dell'elemento in questione.
Ad esempio, per il tag <HTML>, outerHTML conterrà tutto il
documento (fino a </HTML>).
Analogamente per un tag <A>, outerHTML conterrà tutto il codice fino al tag </A>.
Una volta che ci si è riferiti ad un elemento, è possibile leggerne e modificarne gli attributi
con i metodi GetAttribute e SetAttribute. Ad esempio con questo codice:
If HTMLEL.tagName = "A" Then
Print "Questo link navigava verso " & HTMLEL.getAttribute("HREF")
HTMLEL.setAttribute "href", "http://www.ioprogrammo.it", True
End If
viene modificata la destinazione di un link cambiando l'attributo HREF del tag <A>.
Ciao
Simo
simibimo@virgilio.it