¿Cómo obtiene VB todos los procesos bajo un nombre de usuario determinado?
char buf[256], szUser[128], szComputer[128];
HANDLE hProcess, hToken
DWORD cbUser, cbComputer
SID_NAME_USE snu;
if(ProcessID lt; = 0x0c)
Mostrar el nombre de usuario "SYSTEM"
De lo contrario
< p; > Mostrar el nombre de usuario "SERVICE";hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, ProcessID);
OpenProcessToken(hProcess, TOKEN_QUERY, amp; hToken);
GetTokenInformation(hToken, TokenUser y hToken);
GetTokenInformation(hToken, TokenUser y buf, 256 y cbUser);
cbComputer=sizeof( szComputer); p>
LookupAccountSid(NULL, (DWORD *)(*(DWORD *)buf), szUser,
amp;cbUser, amp;cbUser);
cbUser; , amp; szComputer, amp; cbComputer, amp; snu);
CloseHandle(hToken);
CloseHandle(hProcess); la información sobre el proceso se almacena en la matriz ll_processes[]
La lista de nombres de procesos está en lb_1
Después de conocer el nombre del proceso, llame
ll_hprocess = OpenProcess( PROCESS_ALL_ACCESS, 0, ll_processes[ll_index])
Puedes obtener el identificador del proceso
Entonces:
OpenProcessToken(ll_hprocess, TOKEN_QUERY y hToken
GetTokenInformation(hToken, TokenUser, & buf, 256, 256);
GetTokenInformation(hToken, TokenUser, & buf, 256, 256);