Bonjour,
j'ai trouvé une fonction assez utile, qui permet de terminer un processus. La voici :
Je voudrais maintenant modifier cette fonction pour que, au lieu de terminer un processus, elle en lance un nouveau. Je pense que se sont les dernières lignes qu'il faut changer, mais je n'y arrive pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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. }
Pouvez-vous m'aider ?
Merci.
Partager