Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo obtiene VB todos los procesos bajo un nombre de usuario determinado?

¿Cómo obtiene VB todos los procesos bajo un nombre de usuario determinado?

Para obtener el nombre de usuario y la cuenta del proceso, primero debe llamar a OpenProcessToken para abrir el token del proceso (Token), configurar el modo de apertura en TOKEN_QUERY y luego configurar TOKEN_INFORMATION_CLASS en TokenUser para llamar a GetTokenInformation. Enumere el SID del bloque de información del token de proceso, generalmente llamado identificador de seguridad (Identificador de seguridad), y finalmente llame a LookupAccountSid para obtener el nombre de usuario y el número de cuenta del SID.

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);

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);