Obtient la chaîne de ligne de commande du processus spécifié
#include <WinAPIProc.au3>
_WinAPI_GetProcessCommandLine ( [$iPID = 0] )
$iPID | [optionnel] Le PID du processus. Par défaut (0) est le processus actuel. |
Succès: | Retourne la chaîne de ligne de commande. |
Échec: | Retourne la chaîne vide et définit @error <> 0. |
Cette fonction utilise des fonctions non documentées de l'API et peut cesser de fonctionner correctement dans les versions futures de Windows.
L'utilisation de cette fonction pour certains processus peut nécessiter des droits d'accès complets. Utilisez la fonction _WinAPI_AdjustTokenPrivileges() pour activer le privilège $SE_DEBUG_NAME avant d'appeler cette fonction.
#RequireAdmin #include <Array.au3> #include <WinAPIHObj.au3> #include <WinAPIProc.au3> Local $aAdjust, $aList = 0 ; Active le privilège "SeDebugPrivilege" pour obtenir les droits d'accès complets à un autre processus Local $hToken = _WinAPI_OpenProcessToken(BitOR($TOKEN_ADJUST_PRIVILEGES, $TOKEN_QUERY)) _WinAPI_AdjustTokenPrivileges($hToken, $SE_DEBUG_NAME, $SE_PRIVILEGE_ENABLED, $aAdjust) ; Obtient les arguments de la ligne de commande pour tous les processus du système If Not (@error Or @extended) Then $aList = ProcessList() For $i = 1 To $aList[0][0] $aList[$i][1] = _WinAPI_GetProcessCommandLine($aList[$i][1]) Next EndIf ; Active le privilège SeDebugPrivilege par défaut _WinAPI_AdjustTokenPrivileges($hToken, $aAdjust, 0, $aAdjust) _WinAPI_CloseHandle($hToken) _ArrayDisplay($aList, '_WinAPI_GetProcessCommandLine')