Aide et conseils concernant AutoIt et ses outils.
kalixe
Niveau 3
Messages : 40 Enregistré le : mer. 02 déc. 2009 12:06
Status :
Hors ligne
#1
Message
par kalixe » jeu. 21 oct. 2010 12:05
Il est possible de savoir si un programme est lancé avec processExists et de récupérer son PID ok mais existe-t-il un moyen de récupérer le chemin par lequel ce programme a été lancé ?
Modifié en dernier par
kalixe le sam. 23 oct. 2010 14:39, modifié 1 fois.
Koumla
Niveau 4
Messages : 68 Enregistré le : jeu. 15 avr. 2010 11:52
Localisation : France
Status :
Hors ligne
#2
Message
par Koumla » jeu. 21 oct. 2010 20:22
Bonjour,
cela doit convenir.
► Afficher le texte
Code : Tout sélectionner
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$OutputTitle = ""
$Output = ""
$OutputTitle &= "Computer: " & $strComputer & @CRLF
$OutputTitle &= "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
Local $Object_Flag = 0
For $objItem In $colItems
$Object_Flag = 1
$Output &= "Description: " & $objItem.Description & @CRLF
$Output &= "ExecutablePath: " & $objItem.ExecutablePath & @CRLF
if Msgbox(1,"Sortie WMI",$Output) = 2 then ExitLoop
$Output=""
Next
If $Object_Flag = 0 Then Msgbox(1,"Sortie WMI",$OutputTitle)
Else
Msgbox(0,"Sortie WMI","Aucun objets WMI trouvés pour la Classe :" & "Win32_Process" )
Endif
Ou avec plus d'information.
► Afficher le texte
Code : Tout sélectionner
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$OutputTitle = ""
$Output = ""
$OutputTitle &= "Computer: " & $strComputer & @CRLF
$OutputTitle &= "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
Local $Object_Flag = 0
For $objItem In $colItems
$Object_Flag = 1
$Output &= "Caption: " & $objItem.Caption & @CRLF
$Output &= "CommandLine: " & $objItem.CommandLine & @CRLF
$Output &= "CreationClassName: " & $objItem.CreationClassName & @CRLF
$Output &= "CreationDate: " & WMIDateStringToDate($objItem.CreationDate) & @CRLF
$Output &= "CSCreationClassName: " & $objItem.CSCreationClassName & @CRLF
$Output &= "CSName: " & $objItem.CSName & @CRLF
$Output &= "Description: " & $objItem.Description & @CRLF
$Output &= "ExecutablePath: " & $objItem.ExecutablePath & @CRLF
$Output &= "ExecutionState: " & $objItem.ExecutionState & @CRLF
$Output &= "Handle: " & $objItem.Handle & @CRLF
$Output &= "HandleCount: " & $objItem.HandleCount & @CRLF
$Output &= "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
$Output &= "KernelModeTime: " & $objItem.KernelModeTime & @CRLF
$Output &= "MaximumWorkingSetSize: " & $objItem.MaximumWorkingSetSize & @CRLF
$Output &= "MinimumWorkingSetSize: " & $objItem.MinimumWorkingSetSize & @CRLF
$Output &= "Name: " & $objItem.Name & @CRLF
$Output &= "OSCreationClassName: " & $objItem.OSCreationClassName & @CRLF
$Output &= "OSName: " & $objItem.OSName & @CRLF
$Output &= "OtherOperationCount: " & $objItem.OtherOperationCount & @CRLF
$Output &= "OtherTransferCount: " & $objItem.OtherTransferCount & @CRLF
$Output &= "PageFaults: " & $objItem.PageFaults & @CRLF
$Output &= "PageFileUsage: " & $objItem.PageFileUsage & @CRLF
$Output &= "ParentProcessId: " & $objItem.ParentProcessId & @CRLF
$Output &= "PeakPageFileUsage: " & $objItem.PeakPageFileUsage & @CRLF
$Output &= "PeakVirtualSize: " & $objItem.PeakVirtualSize & @CRLF
$Output &= "PeakWorkingSetSize: " & $objItem.PeakWorkingSetSize & @CRLF
$Output &= "Priority: " & $objItem.Priority & @CRLF
$Output &= "PrivatePageCount: " & $objItem.PrivatePageCount & @CRLF
$Output &= "ProcessId: " & $objItem.ProcessId & @CRLF
$Output &= "QuotaNonPagedPoolUsage: " & $objItem.QuotaNonPagedPoolUsage & @CRLF
$Output &= "QuotaPagedPoolUsage: " & $objItem.QuotaPagedPoolUsage & @CRLF
$Output &= "QuotaPeakNonPagedPoolUsage: " & $objItem.QuotaPeakNonPagedPoolUsage & @CRLF
$Output &= "QuotaPeakPagedPoolUsage: " & $objItem.QuotaPeakPagedPoolUsage & @CRLF
$Output &= "ReadOperationCount: " & $objItem.ReadOperationCount & @CRLF
$Output &= "ReadTransferCount: " & $objItem.ReadTransferCount & @CRLF
$Output &= "SessionId: " & $objItem.SessionId & @CRLF
$Output &= "Status: " & $objItem.Status & @CRLF
$Output &= "TerminationDate: " & WMIDateStringToDate($objItem.TerminationDate) & @CRLF
$Output &= "ThreadCount: " & $objItem.ThreadCount & @CRLF
$Output &= "UserModeTime: " & $objItem.UserModeTime & @CRLF
$Output &= "VirtualSize: " & $objItem.VirtualSize & @CRLF
$Output &= "WindowsVersion: " & $objItem.WindowsVersion & @CRLF
$Output &= "WorkingSetSize: " & $objItem.WorkingSetSize & @CRLF
$Output &= "WriteOperationCount: " & $objItem.WriteOperationCount & @CRLF
$Output &= "WriteTransferCount: " & $objItem.WriteTransferCount & @CRLF
if Msgbox(1,"Sortie WMI",$Output) = 2 then ExitLoop
$Output=""
Next
If $Object_Flag = 0 Then Msgbox(1,"Sortie WMI",$OutputTitle)
Else
Msgbox(0,"Sortie WMI","Aucun objets WMI trouvés pour la Classe :" & "Win32_Process" )
Endif
Func WMIDateStringToDate($dtmDate)
Return (StringMid($dtmDate, 5, 2) & "/" & _
StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
& " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
EndFunc
Koumla
Tlem
Site Admin
Messages : 11824 Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status :
Hors ligne
#3
Message
par Tlem » jeu. 21 oct. 2010 21:58
kalixe
Niveau 3
Messages : 40 Enregistré le : mer. 02 déc. 2009 12:06
Status :
Hors ligne
#4
Message
par kalixe » sam. 23 oct. 2010 03:07
Très intéressant tout ça !
Je vais tester voir ce que ca donne, merci beaucoup
Tlem
Site Admin
Messages : 11824 Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status :
Hors ligne
#5
Message
par Tlem » sam. 23 oct. 2010 09:07
N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.