par Michael DELIQUE » 16 Mars 2011 à 16:40
Public Function WindowsProcessID As Variant
Dim lstRetour List As String
Dim vrProcess As Variant
Dim i As Integer
On Error GoTo CatchError
Set vrProcess = GetObject("winmgmts:root\cimv2").execquery("select Name,ProcessId from win32_process")
i=0
ForAll Value In vrProcess
i=i+1
On Error Resume Next
lstRetour(i) = CStr(Value.Name)+ " = " + CStr(Value.ProcessId)
On Error GoTo CatchError
End ForAll
Set vrProcess = Nothing
If i = 0 Then
lstRetour(1) = ""
End If
WindowsProcessID = lstRetour
Erase lstRetour
Exit Function
CatchError:
MsgBox "("+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Erase lstRetour
lstRetour(1) = ""
Set WindowsProcessID = Nothing
Erase lstRetour
Exit Function
End Function
- Code : Tout sélectionner
Public Function WindowsProcessInfo(wnbProcessID As Integer) As Variant
Dim lstRetour List As String
Dim vrProcess As Variant
On Error GoTo CatchError
lstRetour("COMMANDLINE") = ""
lstRetour("CREATIONCLASSNAME") = ""
lstRetour("CREATIONDATE") = ""
lstRetour("CSCREATIONCLASSNAME") = ""
lstRetour("CSNAME") = ""
lstRetour("DESCRIPTION") = ""
lstRetour("EXECUTABLEPATH") = ""
lstRetour("EXECUTIONSTATE") = ""
lstRetour("HANDLE") = ""
lstRetour("HANDLECOUNT") = ""
lstRetour("INSTALLDATE") = ""
lstRetour("KERNELMODETIME") = ""
lstRetour("MAXIMUMWORKINGSETSIZE") = ""
lstRetour("MINIMUMWORKINGSETSIZE") = ""
lstRetour("NAME") = ""
lstRetour("OSCREATIONCLASSNAME") = ""
lstRetour("OSNAME") = ""
lstRetour("OTHEROPERATIONCOUNT") = ""
lstRetour("OTHERTRANSFERTCOUNT") = ""
lstRetour("PAGEFAULTS") = ""
lstRetour("PAGEFILEUSAGE") = ""
lstRetour("PARENTPROCESSID") = ""
lstRetour("PEAKPAGEILEUSAGEF") = ""
lstRetour("PEAKVIRTUALSIZE") = ""
lstRetour("PEAKWORKINGSETSIZE") = ""
lstRetour("PRIORITY") = ""
lstRetour("PRIVATEPAGECOUNT") = ""
lstRetour("PROCESSID") = ""
lstRetour("QUOTANONPAGEDPOOLUSAGE") = ""
lstRetour("QUOTAPAGEDPOOLUSAGE") = ""
lstRetour("QUOTAPEAKNONPAGEDPOOLUSAGE") = ""
lstRetour("QUOTAPEAKPAGEDPOOLUSAGE") = ""
lstRetour("READOPERATIONCOUNT") = ""
lstRetour("READTRANSFERTCOUNT") = ""
lstRetour("SESSIONID") = ""
lstRetour("STATUS") = ""
lstRetour("TERMINATIONDATE") = ""
lstRetour("THREADCOUNT") = ""
lstRetour("USERMODETIME") = ""
lstRetour("VIRTUALSIZE") = ""
lstRetour("WINDOWSVERSION") = ""
lstRetour("WORKINGSETSIZE") = ""
lstRetour("WRITEOPERATIONCOUNT") = ""
lstRetour("WRITETRANSFERTCOUNT") = ""
Set vrProcess = GetObject("winmgmts:root\cimv2").execquery("select * from win32_process where ProcessId="+CStr(wnbProcessID))
ForAll Value In vrProcess
On Error Resume Next
lstRetour("COMMANDLINE") = CStr(Value.CommandLine)
lstRetour("CREATIONCLASSNAME") = CStr(Value.CreationClassName)
lstRetour("CREATIONDATE") = CStr(Value.CreationDate)
lstRetour("CSCREATIONCLASSNAME") = CStr(Value.CSCreationClassName)
lstRetour("CSNAME") = CStr(Value.CSName)
lstRetour("DESCRIPTION") = CStr(Value.Description)
lstRetour("EXECUTABLEPATH") = CStr(Value.ExecutablePath)
lstRetour("EXECUTIONSTATE") = CStr(Value.ExecutionState)
lstRetour("HANDLE") = CStr(Value.Handle)
lstRetour("HANDLECOUNT") = CStr(Value.HandleCount)
lstRetour("INSTALLDATE") = CStr(Value.InstallDate)
lstRetour("KERNELMODETIME") = CStr(Value.KernelModeTime)
lstRetour("MAXIMUMWORKINGSETSIZE") = CStr(Value.MaximumWorkingSetSize)
lstRetour("MINIMUMWORKINGSETSIZE") = CStr(Value.MinimumWorkingSetSize)
lstRetour("NAME") = CStr(Value.Name)
lstRetour("OSCREATIONCLASSNAME") = CStr(Value.OSCreationClassName)
lstRetour("OSNAME") = CStr(Value.OSName)
lstRetour("OTHEROPERATIONCOUNT") = CStr(Value.OtherOperationCount)
lstRetour("OTHERTRANSFERTCOUNT") = CStr(Value.OtherTransferCount)
lstRetour("PAGEFAULTS") = CStr(Value.PageFaults)
lstRetour("PAGEFILEUSAGE") = CStr(Value.PageFileUsage)
lstRetour("PARENTPROCESSID") = CStr(Value.ParentProcessId)
lstRetour("PEAKPAGEILEUSAGEF") = CStr(Value.PeakPageFileUsage)
lstRetour("PEAKVIRTUALSIZE") = CStr(Value.PeakVirtualSize)
lstRetour("PEAKWORKINGSETSIZE") = CStr(Value.PeakWorkingSetSize)
lstRetour("PRIORITY") = CStr(Value.Priority)
lstRetour("PRIVATEPAGECOUNT") = CStr(Value.PrivatePageCount)
lstRetour("PROCESSID") = CStr(Value.ProcessId)
lstRetour("QUOTANONPAGEDPOOLUSAGE") = CStr(Value.QuotaNonPagedPoolUsage)
lstRetour("QUOTAPAGEDPOOLUSAGE") = CStr(Value.QuotaPagedPoolUsage)
lstRetour("QUOTAPEAKNONPAGEDPOOLUSAGE") = CStr(Value.QuotaPeakNonPagedPoolUsage)
lstRetour("QUOTAPEAKPAGEDPOOLUSAGE") = CStr(Value.QuotaPeakPagedPoolUsage)
lstRetour("READOPERATIONCOUNT") = CStr(Value.ReadOperationCount)
lstRetour("READTRANSFERTCOUNT") = CStr(Value.ReadTransferCount)
lstRetour("SESSIONID") = CStr(Value.SessionId)
lstRetour("STATUS") = CStr(Value.Status)
lstRetour("TERMINATIONDATE") = CStr(Value.TerminationDate)
lstRetour("THREADCOUNT") = CStr(Value.ThreadCount)
lstRetour("USERMODETIME") = CStr(Value.UserModeTime)
lstRetour("VIRTUALSIZE") = CStr(Value.VirtualSize)
lstRetour("WINDOWSVERSION") = CStr(Value.WindowsVersion)
lstRetour("WORKINGSETSIZE") = CStr(Value.WorkingSetSize)
lstRetour("WRITEOPERATIONCOUNT") = CStr(Value.WriteOperationCount)
lstRetour("WRITETRANSFERTCOUNT") = CStr(Value.WriteTransferCount)
On Error GoTo CatchError
End ForAll
Set vrProcess = Nothing
WindowsProcessInfo = lstRetour
Erase lstRetour
Exit Function
CatchError:
MsgBox "("+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Erase lstRetour
lstRetour("COMMANDLINE") = ""
lstRetour("CREATIONCLASSNAME") = ""
lstRetour("CREATIONDATE") = ""
lstRetour("CSCREATIONCLASSNAME") = ""
lstRetour("CSNAME") = ""
lstRetour("DESCRIPTION") = ""
lstRetour("EXECUTABLEPATH") = ""
lstRetour("EXECUTIONSTATE") = ""
lstRetour("HANDLE") = ""
lstRetour("HANDLECOUNT") = ""
lstRetour("INSTALLDATE") = ""
lstRetour("KERNELMODETIME") = ""
lstRetour("MAXIMUMWORKINGSETSIZE") = ""
lstRetour("MINIMUMWORKINGSETSIZE") = ""
lstRetour("NAME") = ""
lstRetour("OSCREATIONCLASSNAME") = ""
lstRetour("OSNAME") = ""
lstRetour("OTHEROPERATIONCOUNT") = ""
lstRetour("OTHERTRANSFERTCOUNT") = ""
lstRetour("PAGEFAULTS") = ""
lstRetour("PAGEFILEUSAGE") = ""
lstRetour("PARENTPROCESSID") = ""
lstRetour("PEAKPAGEILEUSAGEF") = ""
lstRetour("PEAKVIRTUALSIZE") = ""
lstRetour("PEAKWORKINGSETSIZE") = ""
lstRetour("PRIORITY") = ""
lstRetour("PRIVATEPAGECOUNT") = ""
lstRetour("PROCESSID") = ""
lstRetour("QUOTANONPAGEDPOOLUSAGE") = ""
lstRetour("QUOTAPAGEDPOOLUSAGE") = ""
lstRetour("QUOTAPEAKNONPAGEDPOOLUSAGE") = ""
lstRetour("QUOTAPEAKPAGEDPOOLUSAGE") = ""
lstRetour("READOPERATIONCOUNT") = ""
lstRetour("READTRANSFERTCOUNT") = ""
lstRetour("SESSIONID") = ""
lstRetour("STATUS") = ""
lstRetour("TERMINATIONDATE") = ""
lstRetour("THREADCOUNT") = ""
lstRetour("USERMODETIME") = ""
lstRetour("VIRTUALSIZE") = ""
lstRetour("WINDOWSVERSION") = ""
lstRetour("WORKINGSETSIZE") = ""
lstRetour("WRITEOPERATIONCOUNT") = ""
lstRetour("WRITETRANSFERTCOUNT") = ""
Set WindowsProcessInfo = Nothing
Erase lstRetour
Exit Function
End Function
- Code : Tout sélectionner
Public Function WindowsProcessKill(wProcessName As String, wnbProcessID As Integer) As String
Dim vrProcess As Variant
Dim selection As String
Dim i As Integer
On Error GoTo CatchError
WindowsProcessKill = ""
If Trim(wProcessName) = "" Then
Selection = {select Name,ProcessId from win32_process where ProcessId=}+CStr(wnbProcessID)
Else
Selection = {select Name,ProcessId from win32_process where Name='}+Trim(wProcessName)+{'}
End If
Set vrProcess = GetObject("winmgmts:root\cimv2").execquery(Selection)
ForAll value In vrProcess
value.Terminate(i)
If i <> 0 Then
Exit ForAll
End If
End ForAll
Set vrProcess = Nothing
Select Case i
Case 0
REM "Successful Completion"
WindowsProcessKill = ""
Case 2
WindowsProcessKill = "Access Denied (2)"
Case 3
WindowsProcessKill = "Insufficient Privilege (3)"
Case 8
WindowsProcessKill = "Unknown Failure (8)"
Case 9
WindowsProcessKill = "Path Not Found (9)"
Case 21
WindowsProcessKill = "Invalid Parameter (21)"
Case Else
WindowsProcessKill = "Unknown Error ("+CStr(i)+")"
End Select
Exit Function
CatchError:
MsgBox "("+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
WindowsProcessKill = "Erreur " + Str(Err) + " : " + CStr(Error)+". Ligne N° "+Cstr(Erl)
Exit Function
End Function
- Code : Tout sélectionner
Public Function WindowsProcessName As Variant
Dim lstRetour List As String
Dim vrProcess As Variant
Dim i As Integer
On Error Goto CatchError
vrProcess = GetObject("winmgmts:root\cimv2").execquery("select Name, ExecutablePath from win32_process")
i=0
Forall Value In vrProcess
i=i+1
On Error Resume Next
lstRetour(i) = Cstr(Value.Name)+ " = " + Cstr(Value.ExecutablePath)
On Error GoTo CatchError
End Forall
Set vrProcess = Nothing
If i = 0 Then
lstRetour(1) = ""
End If
WindowsProcessName = lstRetour
Erase lstRetour
Exit Function
CatchError:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Erase lstRetour
lstRetour(1) = ""
WindowsProcessName = lstRetour
Erase lstRetour
Exit Function
End Function
Cordialement
Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN