Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo escribir un programa para cerrar el proceso en segundo plano en lenguaje C

Cómo escribir un programa para cerrar el proceso en segundo plano en lenguaje C

//eliminar procesoFromName

BOOL KillProcessFromName(LPCSTR lpProcessName)

{

//crear una instantánea del proceso (TH32CS_SNAPPROCESS significa crear una instantánea de todos los procesos)

HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

//Estructura para instantáneas del proceso PROCESSENTRY32

PROCESSENTRY32 pe;

//Creación de instancias de la operación de inicialización que se debe realizar antes de usar Process32First para obtener la primera instantánea del proceso después de la creación de instancias

pe.dwSize = sizeof(PROCESSENTRY32);

//El siguiente IF tiene el Mismo efecto:

//if(hProcessSnap == INVALID_ HANDLE_VALUE) identificador no válido

if(!Process32First(hSnapShot,&pe))

{

Devuelve FALSO;

}

CString strProcessName = hSnapShot,&pe))

{

//pe.szExeFile Obtener el nombre del archivo ejecutable del proceso actual

CString scTmp = pe.szExeFile;

/ Poner el nombre del archivo ejecutable en minúsculas con todos los caracteres alfabéticos

scTmp .MakeLower();

// Compara el nombre del archivo ejecutable del proceso actual con el nombre del archivo pasado

// Si son iguales, la comparación devuelve 0

if(!scTmp.MakeLower());

// Compara el nombre del archivo ejecutable del proceso actual con el nombre del archivo pasado

// If son iguales, la comparación devuelve 0

if(!Compare(strProcessName))

{

//Obtiene el PID del proceso de la instantánea proceso (es decir, el PID en el Administrador de tareas)

DWORD dwProcessID = pe.th32ProcessID;

HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE, FALSE,dwProcessID);

::TerminateProcess(hProcess,0);

CloseHandle(hProcess);

devuelve VERDADERO;

}

scTmp.ReleaseBuffer ();

}

strProc

essName.ReleaseBuffer();

return FALSE;

}

Tomando como ejemplo matar el programa qq, podemos realizar las siguientes operaciones:

KillProcessFromName("qq.exe");