Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
prog:lazarus:cas:processus:processus [24/04/2021 15:36] thierry [Trouver le filename complet d'une commande] |
prog:lazarus:cas:processus:processus [24/04/2021 15:41] (Version actuelle) thierry [Trouver le nom complet d'un Processus avec QueryFullProcessImageName] |
||
|---|---|---|---|
| Ligne 17: | Ligne 17: | ||
| <note tip>N'aurait t'il pas été plus facile d'utiliser ''JwaPsApi:GetProcessImageFileName'' ou ''QueryFullProcessImageNameA'' en passant le Handle du TProcess pour retrouver ce nom de fichier ???</note> | <note tip>N'aurait t'il pas été plus facile d'utiliser ''JwaPsApi:GetProcessImageFileName'' ou ''QueryFullProcessImageNameA'' en passant le Handle du TProcess pour retrouver ce nom de fichier ???</note> | ||
| - | ==== QueryFullProcessImageName ==== | + | ==== Trouver le nom complet d'un Processus avec QueryFullProcessImageName ==== |
| + | Ci dessous : | ||
| + | * ''GetFullProcessImageName'' retourne le nom de fichier complet en fonction du Handle du procesus | ||
| + | * ''GetFullProcessImageNameByProcID'' retourne le nom de fichier complet en fonction de l'ID du procesus.\\ (Récupere le Handle avec un ''OpenProcess'' puis appel ''GetFullProcessImageName'') | ||
| <code delphi> | <code delphi> | ||
| - | function GetFullProcessImageNameByProcID(const AProcId: DWord): string; | + | uses Windows; |
| - | var | + | ... |
| - | vHandle: THandle; | + | |
| - | begin | + | |
| - | Result := ''; | + | |
| - | vHandle := OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, False, AProcId); | + | |
| - | if vHandle > 0 then | + | |
| - | begin | + | |
| - | try | + | |
| - | Result := GetFullProcessImageName(vHandle); | + | |
| - | finally | + | |
| - | CloseHandle(vHandle); | + | |
| - | end; | + | |
| - | end; | + | |
| - | end; | + | |
| function GetFullProcessImageName(const AProcessHandle: THandle): string; | function GetFullProcessImageName(const AProcessHandle: THandle): string; | ||
| var | var | ||
| Ligne 48: | Ligne 37: | ||
| SetLength(vS, vLen); | SetLength(vS, vLen); | ||
| Result := UTF8Encode(vS); | Result := UTF8Encode(vS); | ||
| + | end; | ||
| + | end; | ||
| + | |||
| + | function GetFullProcessImageNameByProcID(const AProcId: DWord): string; | ||
| + | var | ||
| + | vHandle: THandle; | ||
| + | begin | ||
| + | Result := ''; | ||
| + | vHandle := OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, False, AProcId); | ||
| + | if vHandle > 0 then | ||
| + | begin | ||
| + | try | ||
| + | Result := GetFullProcessImageName(vHandle); | ||
| + | finally | ||
| + | CloseHandle(vHandle); | ||
| + | end; | ||
| end; | end; | ||
| end; | end; | ||