Pb VBA EXCEL

Résolu
tioboulet Messages postés 3 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 11 avril 2007 - 10 avril 2007 à 14:10
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 11 avril 2007 à 18:08
Bonjour,
Je voudrais avoir le script en VBA EXCEL pour auditer la presence ou la non presence d'un process ( identifié par le numero ) cree par la commande "  retval = Shell("C:\Util\audit_sign\run.bat", 0)  ". Retval etant le numero de process.
Merci par avance.

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 avril 2007 à 14:25
Salut,
avec WMI, tu peux t'en sortir :

Public retVal As Long

Sub test()

'   [WMI Win32 Helper - Win32_Process]
    On Local Error Resume Next
    Dim sComputerName As String, WMI_Obj As Object, WMI_ObjProps As Object, ObjClsItem As Object
    sComputerName =  Environ$("COMPUTERNAME")
    Set WMI_Obj = GetObject("winmgmts:\" & sComputerName & "\root\cimv2")
    Set WMI_ObjProps = WMI_Obj.ExecQuery("SELECT * FROM Win32_Process", , 48)

    For Each ObjClsItem In WMI_ObjProps
        If ObjClsItem.ExecutablePath = "C:\Util\audit_sign\run.bat" Then
            retVal = ObjClsItem.Handle
            Exit For
        End If
    Next ObjClsItem

    Set ObjClsItem = Nothing
    Set WMI_ObjProps = Nothing
    Set WMI_Obj = Nothing

End Sub

~ <small> Mortalino ~ Colorisation automatique </small>

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
tioboulet Messages postés 3 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 11 avril 2007
11 avril 2007 à 09:55
Bonjour,
Je vais te repondre honnetement. Ton script est superbe , il fonctionne tres bien . Mais ca me gene beaucoup de te dire cela. Je suis partiellement satisfait car il ne repond pas à 100 % à mon souhait. Ton script me liste tous les process "cmd.exe"==> tres bien mais  il m'est impossible de differencier celui qui est identifé par un numero de processus defini. Je t'avoue que je suis deja super content de ton script. Merci encore. Et si tu as le correctif qui me permette d'identifer par le numero de script ==> Je serais comblé.
0
tioboulet Messages postés 3 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 11 avril 2007
11 avril 2007 à 10:39
Re-bonjour,


Toutes mes excuses !!!!!!!!


Je n'ai pas bien regardé ton programme !!!
If ObjClsItem.ExecutablePath = "C:\Util\audit_sign\run.bat" Then
            retVal = ObjClsItem.Handle
En effet, la variable retval donne le numero de processus.
Je te remercie beaucoup pour ton programme. Je le valide immediatement !!!!
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
11 avril 2007 à 18:08
De rien, pour info, avec le WMI, tu peux récupérer pas mal d'infos, je te conseille d'ailleurs cette superbe source de PCPT (le code vient de là, et c'est très pratique)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
Rejoignez-nous