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 : 8072
Catégorie(s) : Fichier / Disque, Système
Langages dispo pour ce code :
- VB6, VBA
- Delphi 5
- VB 2005, VB 2008



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.
Langage : VB 2005 , VB 2008
Date ajout : 25/09/2011
Posté par Boulette67 [Liste]
Imports System.Diagnostics.Process
Private Function ProcessExist(ByRef PID As Integer) As Boolean
        Try
            Return Process.GetProcessById(PID).Responding
        Catch ex As Exception
            Return False
        End Try
End Function

Snippets en rapport avec : Process, Pid, Actif



Codes sources en rapport avec : Process, Pid, Actif

{Javascript / DHTML} FORMULAIRE DYNAMIQUE
Un simple formulaire adaptable qui réagis selon les donnée entrer NB: La fonction passwordScore(pas...

{C# / C#.NET} CONNAITRE LE PROCESS CONNECTÉ À VOS SOCKET
Permet de récupérer une instance de Process désignant l'application connecté à l'autre bout de vos S...

{Visual Basic, VB6, VB.NET, VB 2005} ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) CONCERNÉ
Utilise une API non documentée dispo sur XP. Pas testé sur Vista et supérieurs... portage de: h...

{Delphi} OBSERVATEUR DE PROCESSUS ACTIFS; VPROCESS 1,0
Outil pour afficher les processus / applications qui s'exécutent sur l'ordinateur. Affiche des infor...

{Visual Basic, VB6, VB.NET, VB 2005} RÉCUPÉRER PID PROCESSUS, NOM DE FICHIER.EXE ET HANDLE FENÊTRE À PARTIR DE PID OU NOM DE FICHIER.EXE OU DE HANDLE FENÊTRE
6 fonctions pour processus. GetProcessPidByExeName, GetProcessPidByHwnd, GetProcessHwndByPid, GetPro...

{C# / C#.NET} EXCEL SERVER
Qui n a pas rencontré ce problème d'Excel qui ne se termine pas correctement ? Ce projet a pour b...

{PDA / PocketPC} UN PETIT GESTIONNAIRE DE TACHE AVEC OPENNETCF
Voici un petit gestionnaire de tache écrit avec moins d'une centaine de ligne de code. Je l'ai fait...

{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'...