Вниз
Скачать: CL | DM;

Определение пользователя который запустил процесс   Найти похожие ветки 

 
denis_l   (2009-12-22 22:32) [0]

Есть приложение, в котором я получаю список процессов в виде дерева TreeView. О процессе знаю следующее:
1) Имя процесса (например Project1.exe)
2) ID процесса (PID)
Необходимо определить пользователя, от имени которого запущен процесс.
Если можно - пример!


 
Игорь Шевченко ©   (2009-12-22 23:51) [1]

Пример можно:


function SIDToName (const SID: PSID): string;
var
 Use: SID_NAME_USE;
 DomainName: array;0..1024] of char;
 DomainNameLength: DWORD;
 Name: array[0..1024] of char;
 NameLength: DWORD;
begin
 DomainNameLength := SizeOf(DomainName);
 NameLength := SizeOf(Name);
 if not LookupAccountSid (nil, SID, Name, NameLength, DomainName,
    DomainNameLength, Use) then
   Result := "***"
 else
   Result := Name;
end;

function GetUserName (ProcessId: Cardinal): string;
var
 AccessToken: THandle;
 SidInfo: PSIDANDATTRIBUTES;
 ReturnLength: DWORD;
 ProcessHandle: THandle;
begin
 Result := "";
 ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION, false,
   ProcessId);
 if ProcessHandle = 0 then
   Exit;
 try
   if not OpenProcessToken(ProcessHandle, TOKEN_QUERY, AccessToken) then
     Exit;
   GetMem (SidInfo, 4096);
   try
     Win32Check(GetTokenInformation(AccessToken, TokenUser, SidInfo, 4096,
       ReturnLength));
     Result := SidToName(SidInfo^.Sid);
   finally
     FreeMem(SidInfo);
     CloseHandle(AccessToken);
   end;
 finally
   CloseHandle(ProcessHandle);
 end;
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.052 c
15-1338064205
Юрий
2012-05-27 00:30
2013.03.22
С днем рождения ! 27 мая 2012 воскресенье


15-1343313724
waveOutXXX
2012-07-26 18:42
2013.03.22
Как правильно работать с waveOutXXX?


2-1343924127
Pcrepair
2012-08-02 20:15
2013.03.22
Правильный код функции с idHTTP


2-1345262775
0?0
2012-08-18 08:06
2013.03.22
Не ожидать завершения процедуры.


2-1337504907
Глеб
2012-05-20 13:08
2013.03.22
Поиск нужного компонента




   Наверх