'//APIs utilisées
'Permet de fermer un handle
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
'Permet d'obtenir un handle d'un processus particulier
Public Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long
'Permet d'obtenir des infos sur les temps des processus
Private Declare Function GetProcessTimes Lib "kernel32" (ByVal hProcess As Long, lpCreationTime As Currency, _
lpExitTime As Currency, lpKernelTime As Currency, lpUserTime As Currency) As Long
'//Constantes d'accès aux processus
Public Const PROCESS_QUERY_INFORMATION = 1024
Public Const PROCESS_VM_READ = 16
'----------------------------------------------------
'Permet d'obtenir les temps processeur, temps noyeau et temps utilisateur
'd'un processus en fonction de son PID
'----------------------------------------------------
Public Sub GetProcTimes(ByVal lPID As Long, ByRef KernelTime As Double, ByRef UserTime As Double, ByRef ProcessorTime As Double)
'Le temps processeur (visible dans TaskMgr) est le temps noyau + temps utilisateur
Dim T0 As Currency 'cette variable n'est pas utilisée, mais est nécessaire comme argument de l'API
Dim curTime2 As Currency 'Le temps user qui nous intéresse
Dim curTime As Currency 'Le temps kernel qui nous intéresse
Dim lProcess As Double 'handle du processus
Dim lTime2 As Double 'temps que l'on récupère (user)
Dim lTime As Double 'temps que l'on récupère (kernel)
'obtient le handle du processus
lProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lPID)
'obtient les temps (T0 ne nous intéresse pas)
GetProcessTimes lProcess, T0, T0, curTime, curTime2
'Renvoit le temps en secondes
lTime = curTime / 1000
lTime2 = curTime2 / 1000
'Ferme le handle ouvert par OpenProcess
CloseHandle lProcess
'Affecte la valeur de KernelTime et de UserTime
KernelTime = lTime
UserTime = lTime2
'Le temps processeur est la somme des temps kernel et user
ProcessorTime = UserTime + KernelTime
End Sub
02/11/2006 : Suppression dun bug daffichage
23/11/2006 : correction du bug daffichage pour les tabulations
Seul les admins et l'auteur du code lui même peuvent modifier ce code.