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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager