Bonjour ?
Dans mon projet j'aurai besoin de faire un racourci clavier (imaginons, ctrl+F1)
qui éffecturai dans un premier temps une action a, et qui si je réappuye éffecturai une action b (activer a = activer un truc, et fonction b = désactiver un truc)
La procedure a et b sont séparée.
Alors je vous éxplique le fond de mon probleme :
Il faudrai éxactement le meme type de fonctionnement que onkeydown et onkeyup afin qu'il capte bien les préssions sur les touches concernées et que si je reste appuyé sa ne fasse pas une boucle.
Pour l'instant j'utilise l'API GetASyncKeyState utilisé avec un bool comme ceci :
Et bien évidement, sa capte trés mal l'état des touches à cause des sleeps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 if (GetAsyncKeyState(VK_LCONTROL) <> 0) and (GetAsyncKeyState(VK_F1) <> 0) and (bool = false) then begin actiona; invis := True; sleep(320); end; if (GetAsyncKeyState(VK_LCONTROL) <> 0) and (GetAsyncKeyState(VK_F1) <> 0) and (bool = true) then begin actionb; invis := False; sleep(320); end;
(Sleep que j'ai du mettre car sinon sa aurai créé une boucle)
en clair :
Il faut que la préssion de mon racourci éffectue l'actiona , que je reste appuyé ou que j'appuye une seule fraction de seconde...
Que si l'action a a été déja éfféctuée, alors la préssion sur cette meme touche éffectura l'actionb.
Le souci avec les évenement onkeydown et onkeyup(qui me serai bien pratique) est que je ne sais pas comment faire pour les utiliser lorsque je fais ces racourci quand ma form n'a pas le focus.
ps: pitié, ne me dite pas qu'il faut utiliser des hooks systemes, je n'arrive pas à comprendre comment sa marche.
Merci d'avance pour le coup de main !![]()
Partager