Meilleurs voeux à tous !
En ce moment, je commence à rentrer un peu dans les handles et je n'ai pas encore tout saisir...
A priori c'est juste une question de vocabulaire à moins que je sois passé encore à coté de quelque chose...
Je trouve facilement la fenetre au premier plan avec GetForegroundWindow
J'essaie de la fermer avec sendmessage(Handle,wm_close,0,0)
Mais soucis ca ne ferme pas tout le temps la fenêtre (par exemple internet explorer)
alors j'utilise un truc plus violent
Mon soucis est de savoir si apres le sendmessage ma fenetre existe toujours et si c'est la cas j'utilise le "tueur".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure Tueur(Handle: hwnd); var dwProcessId: DWORD; HandleProcess:THandle; begin GetWindowThreadProcessId(Handle,@dwProcessId);//Obtention de l'identifiant du thread (dans la variable dwProcessId) qui a créé la fenêtre. La fenêtre est désignée par son Handle if dwProcessId<>0 then begin HandleProcess := OpenProcess(PROCESS_TERMINATE,False,dwProcessId); //Obtention du Handle du process à partir de l'identifiant du thread (dwProcessId) TerminateProcess(HandleProcess,0);//Arrêt du process désigné par HandleProcess. Tous ses threads sont également arrétés. end; end;
Je sais je pourrais chercher le handle avant et apres le sendmessage et faire la comparaison mais je prefere savoir si le handle de la fenetre est toujours valide.
C'est quoi la synthaxe ?
ou peut etre j'ai un "mauvais" handle de la fenetre.
Merci, David
PS : comment on enleve le beep sur le sendmessage ?
Partager