Red de conocimiento informático - Problemas con los teléfonos móviles - VC Respecto al problema de encontrar procesos y cerrar procesos, ¡expertos por favor vengan!

VC Respecto al problema de encontrar procesos y cerrar procesos, ¡expertos por favor vengan!

Los procesos en el sistema cambian constantemente, por lo que primero debe tomar una instantánea del sistema y luego enumerar los procesos en la instantánea. MSDN proporciona un buen ejemplo que puede obtener mirando la función CreateToolhelp32Snapshot. La finalización de un proceso se puede lograr utilizando la función TerminateProcess.

La siguiente es una pequeña modificación que hice al código del ejemplo para satisfacer sus necesidades.

BOOL GetProcessList ()

{

HANDLE hProcessSnap = NULL

BOOL bRet = FALSE

PROCESSENTRY32 pe32 = {0};

// Hacer una instantánea de la lista de procesos actual en el sistema

hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0

); if (hProcessSnap == INVALID_HANDLE_VALUE)

return (FALSE);

// Inicializa la estructura PROCESSENTRY32

pe32.dwSize = sizeof(PROCESSENTRY32

// Recorre la lista de procesos. La estructura pe32 guarda el ID del proceso, el nombre del proceso, la prioridad y otra información. Puede utilizar esta estructura para determinar si el proceso que desea operar es el proceso que desea.

//

if (Process32First(hProcessSnap, amp; pe32))

{

hacer

{

//Aquí, si el proceso enumerado actualmente es aquel para el cual necesitas el resultado, puedes procesarlo,

//HANDLE hProcess =OpenProcess(PROCESS_TERMINATE, FALSE, pe32.th32ProcessID);

//if(!hProcess)

//TerminateProcess( hProcess);

// Fin el proceso.

}

while (Process32Next(hProcessSnap, amp; pe32));

bRet = TRUE

} //TerminateProcess( hProcess);

//Finalizar el proceso.

else

bRet = FALSE; // No se puede leer la lista de procesos

// No olvides limpiar el objeto de la instantánea.

CerrarHandle (hProcessSnap);

retorno (bRet);

}