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 6 et antérieur Discussion :

Détection qu'un exe n'est pas en cours d’exécution


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut Détection qu'un exe n'est pas en cours d’exécution
    Bonjour,

    Je recherche un moyen de savoir si un exe n'est pas en cours d’exécution.

    J'ai trouver sa sur dans les tutoriels Visual Basic 6 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function IsFileOpen(ByVal strFic As String) As Boolean
        Dim fic As Integer
        On Error Resume Next
     
        fic = FreeFile()
        Open strFic For Input Access Read Lock Read Write As fic
     
        If err.Number = 0 Then
            IsFileOpen = False
            Close fic
        Else
            IsFileOpen = True
        End If
    End Function
    Cela fonctionne parfaitement sous Win7 mais pas sous Win XP.

    Y a t'il une autre solution, merci

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        If App.PrevInstance = True Then
            MsgBox "Application déjà active.", vbCritical, "MonAppli."
            End
        End If

  3. #3
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Citation Envoyé par pc75 Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        If App.PrevInstance = True Then
            MsgBox "Application déjà active.", vbCritical, "MonAppli."
            End
        End If

    Bonjour Merci d'avoir répondu, mais soit je vois pas comment fonctionne votre solution, soit je me suis mal exprimer.

    Car ce que je souhaite c'est vérifier qu'un autre exe n'est pas en cours d'utilisation.
    En fait mon but c'est:

    Mon application utilise une bibliothèque et un exe qui nous sert de passerelle de communication. Seulement nous avons quelques souci avec les différentes version de Windows et nous avons plusieurs version qui fonctionne parfois nickel avec un Windows mais pas l'autre.

    Actuellement je fait une installation avec installshield et j’installe la version qui est devrais fonctionner avec le Windows sur laquelle on installe le logiciel, mais parfois cela marche quand même pas.

    Mon appli lancer je ne peut donc pas remplacer l'Exe de comm puisqu'elle l'utilise. Donc a partir des option de mon appli je lance une autre toute petite appli qui attend que mon logiciel soit fermer pour remplacer mon exe de comm. Pour se faire j'ai un timer qui regarde si l'exe était toujours en cours d'execution.

    Cela marche bien avec Seven mais pas avec XP. J'ai regardé dans les processus mais mon exe n'y est pourtant plus.


    Il est clair que le top serait déjà de recrée un logiciel de communication, mais c'est prévu mais vu qu'il nous fait énormément de chose c'est du temps a y passer.

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Si j'ai bien compris, tu veux faire une installation, mais il faut pas qu'une certaine appli soit en cours d'exécution ?

    Tu peux alors regarder dans la liste des processus qui tournent sur la machine :

    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
     
    Function ProcessusActif(NomProcess As String) As Boolean
        Dim svc As Object
        Dim squery As String
        Dim oproc
        Dim Actif As Boolean
     
        Set svc = GetObject("winmgmts:root\cimv2")
        squery = "select * from win32_process"
     
        Actif = False
        For Each oproc In svc.execquery(squery)
            If oproc.Name = NomProcess Then
               Actif = True
               Exit For
            End If
        Next
        Set svc = Nothing
     
        ProcessusActif = Actif
    End Function

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    je pense que pc75 a donné le début de la réponse

    avec http://vb.developpez.com/faq/?page=Systeme#listprocess
    et http://vb.developpez.com/faq/?page=Systeme#killprocess
    tu devrais pouvoir faire ce que tu souhaites

    Joyeux Noël

  6. #6
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Citation Envoyé par pc75 Voir le message
    Re,

    Si j'ai bien compris, tu veux faire une installation, mais il faut pas qu'une certaine appli soit en cours d'exécution ?

    Tu peux alors regarder dans la liste des processus qui tournent sur la machine :
    C'est pas tout à fait sa car c'est l'inverse, je veux remplacer un fichier mais pour qu'il puisse être remplacer il ne faut pas qu'il soit actif, mais ton code devrait remplir cette fonction parfaitement si cela marche avec tout les Windows c'est parfait.

    j'essaie sa, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mon processus cmd.exe n'est pas bien configuré lorsqu'il est lancé via la fonction system()
    Par Glavio dans le forum Programmation et administration système
    Réponses: 5
    Dernier message: 20/04/2012, 10h01
  2. Réponses: 3
    Dernier message: 27/11/2011, 16h16
  3. pb installation zend "php.exe" n'est pas reconnu
    Par kurah dans le forum Zend Framework
    Réponses: 3
    Dernier message: 07/10/2011, 00h04
  4. Erreur "eclipse.exe n'est pas une application win32 valide"
    Par Lolitaaa dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 18/09/2011, 14h19
  5. Réponses: 10
    Dernier message: 01/09/2009, 13h19

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