UDF > WinAPIEx > Processes & Synchronization > Processes >


_WinAPI_GetProcessCommandLine

Obtient la chaîne de ligne de commande du processus spécifié

#include <WinAPIProc.au3>
_WinAPI_GetProcessCommandLine ( [$iPID = 0] )

Paramètre

$iPID [optionnel] Le PID du processus. Par défaut (0) est le processus actuel.

Valeur de retour

Succès: Retourne la chaîne de ligne de commande.
Échec: Retourne la chaîne vide et définit @error <> 0.

Remarques

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.

En relation

_WinAPI_AdjustTokenPrivileges

Exemple

#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')