Detecter l'execution d'un programme

speed54 Messages postés 1 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 23 mars 2005 - 23 mars 2005 à 11:53
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 25 janv. 2007 à 22:04
bonjour,
qq'un connait il le code pour detecter ou verifier si un programme ou un executable est en cours d'execution sur le PC?

3 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
23 mars 2005 à 13:55
0
JULIEN0 Messages postés 37 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 16 mai 2014 1
24 janv. 2007 à 10:25
merci pour cette exelente source , qui est tres bien mais super compliqué et incompréhensibl......... je demandais pas a avoir un simulateur de la barre des taches,


Je voudrais juste savoir, le plus simplement du monde , avec une varaible boolean par exemple, comment savoir si un programme (disons notepad.exe) est lancé  ?????

merci......
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
25 janv. 2007 à 22:04
salut,

'inclure les processus dans la vue
Private Const TH32CS_SNAPPROCESS As Long = &H2
'des infos sur un processus
Public Type PROCESSENTRY32
    dwSize As Long                  'taille de cette structure (à initialiser avant l'appel à Process32First ou Process32Next)
    cntUsage As Long                'nombre de handles du processus ouverts
    th32ProcessID As Long           'ID du processus
    th32DefaultHeapID As Long       'interne à windows
    th32ModuleID As Long            'interne à windows
    cntThreads As Long              'nombre de threads du processus
    th32ParentProcessID As Long     'ID du processus parent
    pcPriClassBase As Long          'classe de priorité de base
    dwFlags As Long                 'réservé
    szExeFile As String * 260       'NT/2000/XP : nom du fichier Exe (sans le chemin)
                                    '9x/ME : chemin et nom du fichier Exe
End Type
'crée une vue des processus du système
'renvoie un handle à fermer avec CloseHandle quand on en a plus besoin
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
'renvoie le premier processus de la liste
Private Declare Function Process32First Lib "kernel32.dll" (ByVal hSnapshot As Long, ByRef lppe As PROCESSENTRY32) As Long
'renvoie les processus suivants
Private Declare Function Process32Next Lib "kernel32.dll" (ByVal hSnapshot As Long, ByRef lppe As PROCESSENTRY32) As Long
'ferme un handle
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long

'renvoie la liste des processus
'==============================================
'Paths : indique si le chemin de l'exe doit être inclu (sous NT/2000/XP)
Public Function GetProcessesList(Optional Paths As Boolean = False) As PROCESSENTRY32()
Dim hToolHelp As Long       'handle de la vue des processus
Dim p As PROCESSENTRY32     'infos sur un processus
Dim t() As PROCESSENTRY32   'liste temporaire des processus
Dim Cnt As Long             'compteur

'on demande une vue des processus du système
hToolHelp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)

'compteur à 0
Cnt = 0
'taille
p.dwSize = Len(p)
'on demande le premier processus de la vue
If Process32First(hToolHelp, p) Then
    'on alloue la place dans la liste temporaire
    ReDim t(0)
    'on copie les infos
    t(0) = p
    'taille
    p.dwSize = Len(p)
    'tant qu'il y a des processus dans la vue, on les ajoute à la liste temporaire
    Do While Process32Next(hToolHelp, p)
        Cnt = Cnt + 1
        ReDim Preserve t(Cnt)
        'on supprime le vbNullChar et les espaces inutiles
        p.szExeFile = Left$(p.szExeFile, InStr(p.szExeFile, vbNullChar) - 1)
        'on copie les infos
        t(Cnt) = p
        'si c windows et que l'on veut les chemins complets
        'taille
        p.dwSize = Len(p)
    Loop
End If

'on renvoie la liste
GetProcessesList = t
'on ferme la vue
CloseHandle hToolHelp
End Function

ensuite, parcours de la liste renvoyée par GetProcessesList pour trouver ton programme dans le membre szExeFile de chaque case....

ShareVB
0
Rejoignez-nous