IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Plantage de mon application utilisant SHDocVw si l'explorateur Windows "EXPLORER.EXE" n'est pas démarré


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Plantage de mon application utilisant SHDocVw si l'explorateur Windows "EXPLORER.EXE" n'est pas démarré
    Bonjour à tous

    j'ai besoin de votre aide SVP, car j'ai un petit problème avec une application petite application que je développe sous en VB sous Visual Studio 2010 en utilisant le Framework 2.0, en fait, il s'agit d'une application qui lance IE et qui ouvre une page web dans un nouvel onglet. dans mon projet j'ai ajouté une référence à "SHDocVw.dll" et tt marche bien jusqu'ici, mon problème se manifeste lorsque je lance mon application sans l'explorateur Windows (explorer.exe) alors là l'erreur suivante s'affiche :


    "L'exception System.InvalidOperationException n'a pas été gérée
    Message=An error occurred creating the form. See Exception.InnerException for details. The error is: Retrieving the COM class factory for component with CLSID {9BA05972-F6A8-11CF-A442-00A0C90A8F39} failed due to the following error: 80070002."


    en vérifiant le CLSID dans le registre Windows, je vois que ça pointe sur "C:\WINDOWS\system32\ieframe.dll" et que ce DLL est bien présent sur ma machine (d'ailleurs le même problème ce produit sur n'importe quelle machine), j'en déduit donc que c'est du au fonctionnement SHDocVw.dll et de mon code, qui cherche les fenêtres etc pour agir sur IE, donc ma question est la suivante, aurait-il une solution pour garder mon code comme il est mais remédier à ce genre de bugs? ou y a-t-il une autre solutions ?
    PS : je peux joindre un morceau de code si nécessaire




    Cordialement

  2. #2
    Membre habitué Avatar de Savak
    Homme Profil pro
    Ingénieur Etude et Développement
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur Etude et Développement

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 192
    Points
    192
    Par défaut
    PS : je peux joindre un morceau de code si nécessaire
    Je pense qu'on pourra mieux cibler le problème en effet.

    Tu l'as dis toi même, ça vient soit de ton code, soit de ton dll.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonjour
    merci pour ta réponse. tu as certainement raison
    bon voila un petit morceau de code de mon backgroundworker
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    '************************************
        Dim found As Boolean = False
        Dim NExited As Integer
        Dim GO As Boolean
        Dim iExplorerInstances As New ShellWindows()
        Dim objProcess As System.Diagnostics.Process
     
     
    Private Sub BW01_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BW01.DoWork
            Dim StopLoop As Boolean = False
            Do Until StopLoop = True
                If iExplorerInstances.Count > 0 Then
                    OPs.KillProcess("iexplore")
                    Thread.Sleep(500)
                End If
     
                If GO = False Then
                   LanceEtAttend("iexplore.exe", "www.developpez.net")
                    Thread.Sleep(4000)
     
                    Dim iExplorerInstances As New ShellWindows()
                    For Each iExplorer As SHDocVw.InternetExplorer In iExplorerInstances
                        If iExplorer.Name = "Windows Internet Explorer" Then
                            iExplorer.Navigate("www.lesite.net", &H800)
                            found = True
                            Exit For
                        End If
                    Next
                    GO = True
     
                    '' Attendre jusqu'à ce que le processus rencontre un code de sortie
                    objProcess.WaitForExit()
     
                    '' Libérer les ressources associées au processus
                    objProcess.Close()
     
    		  '' Incrémenter la variable qui compte le nombre de fois que IE a été fermer/terminé 
                    NExited += 1
                    Me.BeginInvoke(New ProgClosedDelegete(AddressOf ProgClosed))
     
                End If
     
                GO = False
                Thread.Sleep(1000)
     
            Loop
        End Sub
    '************************************


    voilà le code marche à la perfection (mais il peut être optimisé au niveau des conditions etc) mais dans l'absence de explorer.exe ça plante je crois au niveau de la déclaration " Dim iExplorerInstances As New ShellWindows() " et donc tout ce qui est en rapport avec et mal parti, donc en gros le cœur de l'application plante.

    et un gros merci pour toutes sorte d'aide de votre part

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Up please !

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/03/2012, 22h41
  2. Réponses: 4
    Dernier message: 05/01/2010, 18h03
  3. problème lors de l'utilisation de mon application
    Par dododi dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/10/2006, 19h35
  4. Utilisation d'un Calendrier dans mon application
    Par menzlitsh dans le forum Struts 1
    Réponses: 2
    Dernier message: 22/09/2006, 14h18
  5. Réponses: 7
    Dernier message: 26/06/2003, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo