salut
1 ___ Je voudrais savoir si il etait faisable de killer l explorateur à partir d un bouton de mon appli ?
2 ___ Quel est le programme qui donne les veritables noms des threads ?
On en a parlé mais je ne trouve plus le post
salut
1 ___ Je voudrais savoir si il etait faisable de killer l explorateur à partir d un bouton de mon appli ?
2 ___ Quel est le programme qui donne les veritables noms des threads ?
On en a parlé mais je ne trouve plus le post
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
35
36
37 void __fastcall TForm1::FormCreate(TObject *Sender) { ShellExecute(NULL,"open","test","","",SW_SHOW); Sleep(2000); HWND hwndexe; if ((hwndexe = FindWindow(NULL, "test")) != NULL) { DWORD ID, ExitCode; HANDLE hdl; GetWindowThreadProcessId(hwndexe, &ID); hdl = OpenProcess(PROCESS_ALL_ACCESS,false, ID); GetExitCodeProcess(hdl, &ExitCode); TerminateProcess(hdl, ExitCode); } int i; i = 0; for ( i=0; i=2; i++) { ShellExecute(NULL,"open","mem.vbs","","",SW_SHOW); Sleep(10000); // valeur pour effectuer mes tests i=i+1; } }
en fait j ouvre un dossier pour qu il puisse terminer le processus
mais j obtiens une erreur systeme
Erreur systeme . code : 1400
Handle de fenetre non valide
et l explorer se reinitialise
une idèe ?
mem.vbs :
FreeMem = Space(256000000)
Pour killer "Explorer.exe" il faut renvoyer un exitCode différent de 0 sinon le système le relance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Recupere le ProcessID de l'explorer ... UINT exitCode = 1; HANDLE ProcessHandle; ProcessHandle = OpenProcess(PROCESS_TERMINATE, false, ProcessID) TerminateProcess(ProcessHandle, exitCode);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 HWND hwndexe; if ((hwndexe = FindWindow(NULL, "test")) != NULL) { DWORD ID; UINT ExitCode = 1; HANDLE hdl; GetWindowThreadProcessId(hwndexe, &ID); hdl = OpenProcess(PROCESS_ALL_ACCESS,false, ID); TerminateProcess(hdl, ExitCode); }
Merci c impeccable
Un peu plus simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 WinExec("taskkill /F /IM \"explorer.exe\"",0);
Sauf que la documentation dit:
Je suis étonné que sa fonctionne encore en 64-bit!Note This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.
Partager