VC Respecto al problema de encontrar procesos y cerrar procesos, ¡expertos por favor vengan!
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 ); p>
// 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);
}