1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| bool ShellExit(char *ExeName)
{
//Recherche du processus:
HANDLE hSnapShot;
PROCESSENTRY32 uProcess;
bool r;
short PID = 0; //variable qui va stocker l'ID du processus de l'application que l'on désire fermer.
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
uProcess.dwSize = (DWORD) sizeof(PROCESSENTRY32);
r = Process32First(hSnapShot, &uProcess);
do // Cette boucle énnumère tout les processus
{
if ( strstr(uProcess.szExeFile, ExeName) )//on cherche le nom de notre application dans le chemin d'accès de l'éxécutable du processus.
PID = (short) uProcess.th32ProcessID;
r = Process32Next(hSnapShot, &uProcess);
} while ( r );
CloseHandle(hSnapShot);
if ( PID == 0)
return false;
//Fermeture du processus:
HANDLE hTemp;
hTemp = OpenProcess(PROCESS_ALL_ACCESS, false, (DWORD) PID);
TerminateProcess(hTemp,0);
return true;
//Attention: le nom de l'éxécutable est écrit ou tout en majuscule, ou comme il est orthografier sur le disque dur. Il faut parfois faire plusieurs text pour un seul nom d'executable.
} |
Partager