Fermer un processus


Propriétés du code


Date de création : 14/04/2007 à 20:28:00
0 Commentaire(s)
  sebdraluorg

 

Présentation


Cette fonction permet de fermer un processus depuis son PID

Arguments:

-ProcessId
Type: Long
Role: indique sur quel processus agir

-Delai (Optional)
Type: Long
role: indique le temps a attendre pour que l'appli se ferme (2000 Millisecondes par defaut)

-Force (Optional)
Type: Boolean
Role: indique si le processus doit etre tuer si le delai est depassé

 

Code


Private Declare Function PostThreadMessage Lib "user32" Alias "PostThreadMessageA" (ByVal idThread As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Private Const PROCESS_QUERY_INFORMATION  As Long = &H400
Private Const PROCESS_TERMINATE          As long = &H1


Public Function CloseProcess(ProcessID As Long, Optional Delai As Long = 3000, Optional Force As Boolean = False) As Long
   
    Dim hProcess    As Long
    Dim ExitCode    As Long
    ' Ouvre le processus
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_TERMINATE, 0, ProcessID)
    'Envoi un message de fermeture au thread principal de l'application
    PostThreadMessage ProcessID, WM_QUIT, 0, 0
    'on attend la femeture du process
    WaitForSingleObject hProcess, Delai
    'on verifie que celui ci s'est bien arreté
    GetExitCodeProcess hProcess, ExitCode
    's 'il est toujours en cours
    If ExitCode = STILL_ACTIVE Then
        'si on a choisi l'option force on le ferme
        If Force = True Then
            CloseProcess = TerminateProcess(hProcess, 0)
        End If
    Else
        CloseProcess = 1
    End If
   
    CloseHandle hProcess
   
End Function


 
 

Modifier le code

Seul les admins et l'auteur du code lui même peuvent modifier ce code.

 

Commentaires


Ajouter un commentaire


Vous devez être connecté pour pouvoir poster un commentaire.

 
 

Valid HTML 4.01 Transitional Valid CSS

Site web de Vb System Library version 1.3
Developpement et design réalisé par : Matthieu Napoli (MadMatt)
© 2007 Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
Temps d'execution de la page : 0.007 s
www.mnapoli.fr