Controller internet explorer via interop.shdocvw en vb.net


Description

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.

Codes Sources

A voir également

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.