Ce code n'est pas une esquisse de logiciel, mais simplement un essai pour voir ce que l'on pouvait faire avec cette dll et le montrer, ne vous ettonez donc pas si le programme du zip est totalement inutile.
J'ai bcp commenté,parfois meme des choses inutile et je n'ai mis que ce qui semblait interessant a savoir pour essayer de faire simple.
IL y a encore pas mal d'evenements qui pourraient servir selon les besoins (OnfullScreen, Onmenubarr, etc), je vous laisse decouvrir ce qu'il reste seuls.
Source / Exemple :
'Il faut donc tout d'abord ajouter la reference à la dll "Interop.SHDocVw.dll" (menu Project\add reference).
'definissez ensuite cette variable globale
Protected WithEvents IEexterne As SHDocVw.InternetExplorer
'Pour charger il n'y a plus qu'a appeler l'objet de cette maniere :
IEexterne = New SHDocVw.InternetExplorer()
'Ensuite il n'y a qu'a definir ses proprietés :
IEexterne.AddressBar = True 'barre d'addresse visible
IEexterne.FullScreen = False 'mode pleine ecran desactivé
IEexterne.MenuBar = True 'barre menu visible
IEexterne.Resizable = True 'la fenetre est redimensionnable (false : fenetre figée)
IEexterne.StatusBar = True 'la barre de status est visible
IEexterne.TheaterMode = False 'le mode "theatre" n'est pas activé
IEexterne.ToolBar = 1 'la barre d'outils est visible
'taille intiale de la fenetre et position initiale à l'ecran :
IEexterne.Height = 600
IEexterne.Width = 500
IEexterne.Top = 0
IEexterne.Left = 0
'Et enfin Lancer la commande Navigate et definir IE visible ou non
IEexterne.Visible = True 'la fenetre IE est visible, la valeur par defaut est false
IEexterne.Navigate(TextBox1.Text, , , , "User-Agent: dot_net_browser") 'on lance la connection a l'url specifiée, en specifiant un des headers de la requete
'Voila maintenant quelques evenement de l'objet InternetExplorer :
Private Sub IEexterne_OnQuit() Handles IEexterne.OnQuit
'se declenche lorsque la fenetre est fermée
IEexterne = Nothing 'libere l'objet pour permettre un appel ulterieur
End Sub
Private Sub IEexterne_DocumentComplete(ByVal pDisp As Object, ByRef URL As Object) Handles IEexterne.DocumentComplete
'se declenche lorsque le document est chargé entierement
End Sub
Private Sub IEexterne_StatusTextChange(ByVal [Text] As String) Handles IEexterne.StatusTextChange
'se declenche à chaquefois que le texte de status change
'[Text] contient la valeur du texte de status
End Sub
Private Sub IEexterne_DownloadBegin() Handles IEexterne.DownloadBegin
'se declenche à chaque fois qu'un telechargement se lance
End Sub
Private Sub IEexterne_DownloadComplete() Handles IEexterne.DownloadComplete
'se declenche à chaque fois qu'un telechargement se finit
End Sub
Private Sub IEexterne_TitleChange(ByVal [Text] As String) Handles IEexterne.TitleChange
'se declenche à chaque fois que le titre change
' la string [Text] contient le nouveau titre
End Sub
Private Sub IEexterne_NavigateError(ByVal pDisp As Object, ByRef URL As Object, ByRef Frame As Object, ByRef StatusCode As Object, ByRef Cancel As Boolean) Handles IEexterne.NavigateError
'cette fonction est censé se declencher lors d'une erreur de navigation... je n'ai pas reussi a la declencher
End Sub
Private Sub IEexterne_PropertyChange(ByVal szProperty As String) Handles IEexterne.PropertyChange
'renvoie une chaine de characteres du types microsoft bizarre que je sais pas decoder dans la string szProperty
End Sub
Private Sub IEexterne_ProgressChange(ByVal Progress As Integer, ByVal ProgressMax As Integer) Handles IEexterne.ProgressChange
'Renvoie la progression du telechargement en cours, mais ce n'est pas tres precis
' Progress est la valeur deja téléchargé
' ProgressMax est la valeur total a télécharger
End Sub
'Voila tout ca est un petit peu mieux expliqué dans la source, mais je n'aime pas les sources qui disent "GOTO ZIP" ou "Allez voir vite le zip", ca me decourage. J'espere que mon effort de réecrire plus ou moins le code aura servit a qqc.
Conclusion :
Je me suis inspiré d'un sample de microsoft (et oui, je n'ai pas inventé cet objet et ses methodes) .
J'ai trouver interessant de le mettre.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.