Función de proceso Win32
(1) Portapapeles;
(2) Intercambio dinámico de datos;
(3) Modelo de objetos componentes; p>
p>
(4)Asignación de archivos;
(5)Ranura de correo;
(6)Tubería;
(7 )Socket Win32;
(8) Llamada a procedimiento remoto;
(9) Mensaje WM_COPYDATA (mensaje WM_COPYDATA). En WIN32, podemos utilizar la función auxiliar de estado del proceso proporcionada en PSAPI. DLL para ayudarnos a obtener información del proceso.
(1) La función EnumProcesses() puede obtener el ID del proceso, y su prototipo es:
BOOL procesos de enumeración (DWORD * lpid proceso, DWORD cb, DWORD * cbNeeded
Parámetro lpidProcess: una matriz de tipo DWORD, lo suficientemente grande como para almacenar el valor de ID del proceso; parámetro cb: la longitud máxima de la matriz que almacena el valor de ID del proceso, que son datos DWORD;
Parámetro cbNeeded: un puntero a un puntero a datos DWORD, utilizado para devolver el número de procesos;
Valor de retorno de la función: si la llamada es exitosa, se devuelve VERDADERO y los valores de ID de todos los procesos se almacenan en la matriz señalada por el parámetro lpidProcess, y el número de procesos se almacena en la variable señalada por el parámetro cbNeeded; si la llamada falla, se devuelve FALSE
(. 2)2) La función GetModuleFileNameExA() puede obtener el nombre del archivo del proceso a través del identificador del proceso, y su prototipo es:
DWORD GetModuleFileNameExA(HANDLE h proceso, HMODULE hModule, LPTSTR lpstrFileName, DWORD nsize);
Parámetro hProcess: acepta el parámetro del handle del proceso, que es una variable de tipo HANDLE;
Parámetro hModule: Parámetro de tipo puntero, vacío en este programa;
<; p>Parámetro nombre de archivo lpstr: puntero de tipo lptstr, usado para aceptar el puntero de matriz de caracteres pasado por la función de llamada, usado para almacenar el nombre del proceso;Parámetro nsize: la longitud del grupo indexado por el archivo lpstr nombre;
Valor de retorno de la función: si la llamada es exitosa, se devuelven datos de tipo DWORD mayores que 0. El nombre del proceso correspondiente a hProcess se almacena en la matriz lpstrFileName; 0.
Con el siguiente código, puede recorrer los procesos en el sistema y obtener la lista de procesos:
//Obtener el número total de procesos actuales.
enumprocesses(process_id,sizeof(process_id),&num_processes);
//Recorre el proceso
for(int I = 0;i<num _processi++)
{
//Obtener el identificador según el ID del proceso
PROCESS[I]= open PROCESS(PROCESS _ QUERY _ INFORMACIÓN | PROCESS_VM_READ, 0
process_ids[I]);
//Obtiene el nombre del archivo del proceso a través del identificador.
if(GetModuleFileNameExA(process[I], NULL, File_name, sizeof(fileName)))
cout & lt& ltfilename& lt& ltendl
}