Les Snippets

Connexion

Vérifier si un process est actif (à partir de son PID)

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 21/04/2009 11:17:05 et initié par Renfield [Liste]
Date de mise à jour : 21/04/2009 11:17:58
Vue : 2960
Catégorie(s) : Fichier / Disque, Système
Langages dispo pour ce code :
- VB6, VBA
- Delphi 5



Langage : VB6 , VBA
Date ajout : 21/04/2009
Posté par Renfield [Liste]
DateMAJ : 21/04/2009

Private Const MAX_PATH = 260
Private Const TH32CS_SNAPPROCESS = 2&

Private Type PROCESSENTRY32
   lSize As Long
   lUsage As Long
   lProcessId As Long
   lDefaultHeapId As Long
   lModuleId As Long
   lThreads As Long
   lParentProcessId As Long
   lPriClassBase As Long
   lFlags As Long
   sExeFile As String * MAX_PATH
End Type

Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessId As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)

Public Function IsProcessActive(ByVal vnPID As Long) As Boolean
Dim hSnap As Long
Dim tProcess As PROCESSENTRY32
   If vnPID Then
       hSnap = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
       If hSnap Then
           tProcess.lSize = Len(tProcess)
           If ProcessFirst(hSnap, tProcess) Then
               Do
                   If tProcess.lProcessId = vnPID Then
                       IsProcessActive = True
                       Exit Do
                   End If
               Loop While ProcessNext(hSnap, tProcess)
           End If
           CloseHandle hSnap
       End If
   End If
End Function  


Remarque :
le PID du process lancé par l'instruction Shell est la valeur renvoyée par Shell
Langage : Delphi 5
Date ajout : 02/07/2009
Posté par Bacterius [Liste]
uses tlhelp32;
function IsProcessActive(const PID: Longword): Boolean;
Var
 hSnap: Longword;
 tProcess: PROCESSENTRY32;
begin
 Result := False;
 if PID <> 0 then
  begin
   hSnap := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
   if hSnap <> 0 then
    begin
     tProcess.dwSize := SizeOf(PROCESSENTRY32);
     if Process32First(hSnap, tProcess) then
      repeat
       Result := (tProcess.th32ProcessID = PID);
       if Result then Break;
      until not Process32Next(hSnap, tProcess);
     CloseHandle(hSnap);
    end;
  end;
end;
Remarque :
Traduction directe du code de Renfield de VB à Delphi.

Snippets en rapport avec : Process, Pid, Actif



Codes sources en rapport avec : Process, Pid, Actif

{Visual Basic, VB6, VB.NET, VB 2005} DATE-HEURE DE LANCEMENT D'UN PROGRAMME
Retrouver la date et l'heure à laquelle a été lancé un programme. Je devais développer cette recher...

{Visual Basic, VB6, VB.NET, VB 2005} YET ANOTHER (REMOTE) PROCESS MONITOR
Bonjour à tous, YAPM (Yet Another (remote) Process Monitor) est un programme de monitoring avancé...

{C / C++ / C++.NET} [C/WIN32][DRIVER] DÉTECTION DE CRÉATION OU DE SUPPRESSION DE PROCESSUS.
Yop à tous, Voici un petite driver qui permet la détection de la création ou de la suppression d'...

{Visual Basic, VB6, VB.NET, VB 2005} COMMENT DÉTECTER LES PROCESSUS CACHÉS (VIRUS, ROOTKITS...) + ÉNUMÉRATION AVANCÉE DES PROCESSUS
Bonjour, voilà une source montrant comment avoir la liste des processus cachés qui tournent sur l...

{Visual Basic, VB6, VB.NET, VB 2005} ATTENDRE LA FIN D'UN PROCESS EXTERNE AVANT DE FAIRE AUTRE CHOSE
Voila, j'avais besoin de tester si un log (wordpad dans mon exemple) n'était plus en exécution avant...

{PHP} [PHP5] MULTI-THREADING : ACCÉLÉRATION DU TEMPS DE TRAVAIL D'UN SCRIPT.
L'article rédigé par Martin Roest (http://www.ibuildings.com/blog/archives/1539-Boost-performance-wi...

{Visual Basic, VB6, VB.NET, VB 2005} YET ANOTHER PROCESS MONITOR
Bonjour à tous, YAPM (Yet Another Process Monitor) est un programme permettant d'entièrement gé...

{C# / C#.NET} LOGICIEL DE RÉGULATION PID EN C# - VS 2008 EXPRESS
Logiciel de Régulation pour TP. IUT GTE Fonctions du logiciel: - Régule la température d'un fo...

{C# / C#.NET} ENVOI DE MESSAGES NET SEND
Envoi de message via la commande Net Send: Liste des ordinateurs présent sur le réseau. Affichage de...

{Visual Basic, VB6, VB.NET, VB 2005} WIN++ OPTIONS AVANCÉES SUR LES FENETRES ET PROCESSUS WINDOWS (CPU LIMITER, CTRL ALT END, METTRE EN PAUSE UN PROCESSUS...)
Bonjour à tous, Voici un programme dont le but est le suivant : Rassembler toutes les petites so...