Page 1 sur 2
[OK] Fermer Gestionnaire de tâches Windows 8
Publié : jeu. 27/févr./2014 18:00
par Ar-S
J'ai retesté de vieux codes et surtout retâter un peu les API de windows et j'ai un soucis pour fermer le gestionnaire de tâches.
Je me dis que c'est une sécurité de W8 mais je trouve tout de même étrange que cela ne fonctionne pas.
Version grossière et sans thread ni callback mais qui devrait marcher car la fenêtre est bien détectée.
J'ajoute que ce code fonctionne pour les autres fenêtre que j'ai pu tester.
Code : Tout sélectionner
; A Lancer avec le debugger activé
GT.s="Gestionnaire des tâches" ; Nom de la fenêtre à fermer
Try = 0
Repeat
Delay(500) ; Pas de fenêtre / pas de timer je fait donc le porc avec un delai
Hwnd = FindWindow_(0,GT) ; On choppe l'handle de la fenêtre
If Hwnd <> 0 ; S'il le trouve,
Debug "Fenêtre trouvée ! Handle : " + Str(hwnd) ; il l'affiche
Ferme = DestroyWindow_(Hwnd) ; Et tente de fermer cette foutue fenêtre
If Not Ferme = 0 ; Si ça marche
Debug "Fenêtre fermée !" ; On le signale
End ; et on quitte
Else ; sinon
Debug " Erreur ! fenetre pas fermée !" ; on le signale
EndIf
TRY+1 ; On incrémente le nombre de tentative de 1
EndIf
Until Try = 15 ; Jusqu'à ce qu'il ait tenté 15 fois
End
je me suis dit que ça venait du x86, j'ai donc compilé en x64 mais sans plus de résultat. Vous avez une idée d'ou peut venir ce blocage ?
Re: Fermer Gestionnaire de tâches Windows 8
Publié : jeu. 27/févr./2014 19:35
par nico
Si ça marchait avec DestroyWindow, t'as pensé qu'avec cette API tu ne fais que fermer une fenêtre et les threads associés au Processus, t'es sûr que tout se termine bien.
Je crois qu'un Fichier - quitter (par simulation) marcherais beaucoup mieux! ou alors un TerminateProcess, la première solution est la mieux car elle termine normalement le processus.
Re: Fermer Gestionnaire de tâches Windows 8
Publié : jeu. 27/févr./2014 20:57
par nico
Encore plus simple, en mettant la fenêtre du gestionnaire de tâche au premier plan et en simulant la touche Echap, cela ferme la fenêtre.
J'ai pas window 8 d'installé donc je ne peux pas faire de test!
Re: Fermer Gestionnaire de tâches Windows 8
Publié : jeu. 27/févr./2014 21:03
par nico
Apparemment, il y a deux interfaces, une simplifié et une autre complète, la simplifié on peut pas la fermer avec la touche Echap mais on devrait pouvoir le faire avec ALT+F4.
Re: Fermer Gestionnaire de tâches Windows 8
Publié : jeu. 27/févr./2014 22:54
par nico
Bon, je viens d'installer Window 8 et rien ne marche désolé!
Edit, ça marche mais avec les Privilèges Elevés (A cocher dans les options de compilation)
Code : Tout sélectionner
; A Lancer avec le debugger activé
Cocher : Privilèges Elevés
#KEYEVENTF_UNICODE = 4
Procedure.l KeyCombi(Ctrl.l,Alt.l,Shift.l, key.a)
Protected Extended.l,Scan.l,j.l=-1,Nb.l
Protected Dim SendInputData.INPUT(0)
Nb=(Ctrl+Alt+Shift)*2
If Key
Nb=Nb+2
EndIf
ReDim SendInputData.INPUT(Nb)
If Ctrl
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_CONTROL
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Alt
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_MENU
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Shift
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_SHIFT
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Key
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= Key
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|Extended
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
j=j+1
SendInputData(j)\Type = #INPUT_KEYBOARD
SendInputData(j)\ki\wVk = Key
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|#KEYEVENTF_KEYUP|Extended
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Shift
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_SHIFT
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|#KEYEVENTF_KEYUP
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Alt
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_MENU
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|#KEYEVENTF_KEYUP
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Ctrl
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_CONTROL
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|#KEYEVENTF_KEYUP
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
SendInput_(Nb, SendInputData(0), SizeOf(INPUT))
EndProcedure
GT.s="Gestionnaire des tâches"
Delay(500)
Hwnd = FindWindow_(0, GT)
If Hwnd <> 0
SetForegroundWindow_(hwnd)
Delay(1000)
KeyCombi(0, 1, 0, #VK_F4)
Delay(1000)
If FindWindow_(0,"Gestionnaire des tâches") = 0
Debug "Fenêtre Fermée!"
EndIf
EndIf
End
Re: Fermer Gestionnaire de tâches Windows 8
Publié : jeu. 27/févr./2014 23:08
par Backup
essaye ça :
Code : Tout sélectionner
; trouve le handle d'une application
; et change la position de l'application trouve
; et force a quitter ;)
hWinCalc = FindWindow_(#Null,"Gestionnaire des tâches de Windows")
Calldebugger
xw=100
yw=300
if hWinCalc
SetWindowPos_ (hWinCalc, -1, xw, yw, 0, 0, #SWP_NOSIZE )
Endif
SendMessage_(hWinCalc,#WM_SYSCOMMAND,#SC_CLOSE,0)
; EPB
Re: Fermer Gestionnaire de tâches Windows 8
Publié : ven. 28/févr./2014 0:02
par nico
Je suis vert, ça fait 4H30 que je suis dessus
Marche aussi très bien sans Move:
Code : Tout sélectionner
; By Dobro
; trouve le handle d'une application
; et force a quitter ;)
hWinCalc = FindWindow_(#Null,"Gestionnaire des tâches")
CallDebugger
If hWinCalc
SetWindowPos_ (hWinCalc, -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE )
EndIf
SendMessage_(hWinCalc,#WM_SYSCOMMAND,#SC_CLOSE,0)
Delay(100)
If FindWindow_(#Null,"Gestionnaire des tâches") = 0
Debug "Fonctionne, merci Dobro!"
Else
Debug "Ne fonctionne pas"
EndIf
; EPB
Re: Fermer Gestionnaire de tâches Windows 8
Publié : ven. 28/févr./2014 0:19
par Backup
bah .. un coup de bol
Marche aussi très bien sans Move:
j'avais laissé le move, car je suis parti d'un exemple de sendmessage avec le move seulement ...
je n'ai eu plus qu'a chercher sur Microsoft, comment envoyer un message de terminaison

Re: Fermer Gestionnaire de tâches Windows 8
Publié : ven. 28/févr./2014 0:39
par nico
Ben heureusement que t'es intervenu parce que je continuais le truc pour faire fonctionner mon exemple sans que l'UAC n'apparaisse ce qui est tout à fait possible en passant par les tâches planifiées.
Re: Fermer Gestionnaire de tâches Windows 8
Publié : ven. 28/févr./2014 0:50
par Backup
ben , là , précisément , tu me parles chinois
l'UAC ?? quezako que ct'affaire là bondiou la germaine ...
pis alors le : "en passant par les tâches planifiées." .....

Re: Fermer Gestionnaire de tâches Windows 8
Publié : ven. 28/févr./2014 0:56
par nico
Ben en fait j'ai découvert ça en allant sur le forum Autoit, il est possible de lancer un programme avec les privilèges élevés en programmant une tâche, c'est comme ça que procède les anti-virus.
Donc se méfier et regarder ce qui est programmé dans le planificateur de tâche.
Je ferais un exemple quand j'aurais le temps, ça peut se programmer en ligne de commande ou en com.
Re: Fermer Gestionnaire de tâches Windows 8
Publié : ven. 28/févr./2014 0:59
par Backup
ça peut toujours etre intéressant a connaitre
meme si je n'en vois pas l’intérêt que je pourrai en tirer, pour ce que je fait de mon ordi ... mais bon je coucherai moins bete

Re: Fermer Gestionnaire de tâches Windows 8
Publié : ven. 28/févr./2014 4:47
par Ar-S
Merci pour vos réponses, je teste ça demain. Je rentre juste (4h47...) je vais me pieuter.
Re: Fermer Gestionnaire de tâches Windows 8
Publié : ven. 28/févr./2014 8:33
par nico
L' UAC , c'est l'avertissement de sécurité qui apparait pour installer un programme et qui requiert une action de l'utilisateur, cela permet donc d'écrire dans le dossier Program files, la base de registre etc...
Je suis étonné que tu ne puisses voir l'intérêt d'une telle chose ainsi que sa dangerosité.
Re: Fermer Gestionnaire de tâches Windows 8
Publié : ven. 28/févr./2014 10:31
par Backup
ben n'etant pas malfaisant, de nature, je vois plutot tout ces protocoles comme des limitations
ça me gave de ne pas pouvoir acceder a l'ensemble de mon ordi sans etre obligé de confirmer ceci ou cela ..
surtout lorsque la commande, viens du clavier.. de l'ordinateur meme ...
je peux comprendre la parano lorsqu'elle viens du reseau ...
mais meme déconnecté de celui-ci . les alertes continues ...
sur mon atari , j'etais pas si embété

alors tout ces trucs , ça me dépasse un peu
