UDF > WinAPIEx > Processes & Synchronization > Processes >


_WinAPI_GetProcessWorkingDirectory

Obtient le répertoire de travail courant du processus spécifié

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

Paramètre

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

Valeur de retour

Succès: Retourne le chemin d'accès au répertoire de travail.
É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 pourrait 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 répertoires de travail de 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_GetProcessWorkingDirectory($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')