Page 1 sur 1
GetAsyncKeyState_
Publié : mar. 16/févr./2010 13:15
par Kwai chang caine
Bonjour à tous
GetAsyncKeyState_ ça s'utilise sans le cuisiner ??
Parce que j'ai la sensation qu'il garde en "memoire" quelque chose ???
Ou bien que y'a deux parametres qui se suivent, car quand j'en met deux de suite ça marche et un seul, il fait comme si je continuais a appuyer, .......le gougnafier (Tiens ça rime)
Peut etre faut il vider le buffer, ou un truc comme ça, avant de l'utiliser ???
J'y pense aussi je fais deux teste de suite comme ça, ç'est peut etre la qu'est l'os, hélas ??
Code : Tout sélectionner
If GetAsyncKeyState_(#VK_LBUTTON)
If GetAsyncKeyState_(#VK_CONTROL)
++++
++++
+++
Endif
Endif
Merci de vos lumieres

Re: GetAsyncKeyState_
Publié : mar. 16/févr./2010 13:34
par Cls
Salut KCC,
en fait GetAsyncKeyState renvoi l'état de la touche au moment de l'appel à la fonction. Si deux appels à cette fonction sont trop "proches" dans le temps, ils renverront la même valeur. Y'en plus d'infos ici :
http://msdn.microsoft.com/en-us/library ... 85%29.aspx Normalement pas besoin "de le cuisiner"
Il peut être utile de "temporiser" les appels en fonction de ce que tu souhaites faire.
Re: GetAsyncKeyState_
Publié : mar. 16/févr./2010 13:44
par Kwai chang caine
Bonjour CLS content de te parler
C'est peut etre ça...il sont trop pret, car ils sont juste a la suite l'un de l'autre
Car comme ça ...ça marche pas
Code : Tout sélectionner
If GetAsyncKeyState_(#VK_LBUTTON)
If GetAsyncKeyState_(#VK_CONTROL)
++++
++++
+++
Endif
Endif
Et comme ça ...avec un debug, ça marche
Code : Tout sélectionner
If GetAsyncKeyState_(#VK_LBUTTON)
Debug GetAsyncKeyState_(#VK_CONTROL)
If GetAsyncKeyState_(#VK_CONTROL)
++++
++++
+++
Endif
Endif
Re: GetAsyncKeyState_
Publié : mar. 16/févr./2010 14:20
par Cls
Si je comprends bien tu veux intercepter le Ctrl + click gauche. Tu peux faire ainsi :
Code : Tout sélectionner
#APPUI = -32767
#APPUI_LONG = 32768
Repeat
click_gauche = GetAsyncKeyState_(#VK_LBUTTON)
control = GetAsyncKeyState_(#VK_CONTROL)
If click_gauche = #APPUI And (control = #APPUI Or control = #APPUI_LONG)
Debug "Ctrl + click gauche"
End
EndIf
Delay(10)
ForEver
Re: GetAsyncKeyState_
Publié : mar. 16/févr./2010 14:36
par Kwai chang caine
C'est un tout petit peu plus compliqué que ça.
Je veux detecter le clic gauche et aussi le clic gauche + CTRL
J'ai modifié ton code
Avec un ElseIf, et seulement dans cet ordre, ça a l'air de marcher
Code : Tout sélectionner
#APPUI = -32767
#APPUI_LONG = 32768
Repeat
click_gauche = GetAsyncKeyState_(#VK_LBUTTON)
control = GetAsyncKeyState_(#VK_CONTROL)
If click_gauche = #APPUI And (control = #APPUI Or control = #APPUI_LONG)
Debug "Ctrl + click gauche"
ElseIf click_gauche = #APPUI
Debug "Click gauche seul"
EndIf
Delay(10)
ForEver²
Re: GetAsyncKeyState_
Publié : mar. 16/févr./2010 15:23
par Kwai chang caine
Bon je viens de trouver une combine sur le US de dare, pour vider le tampon clavier
Bien qu'ils disent que cela ne s'appelle pas comme ça..enfin si j'ai compris
http://www.purebasic.fr/english/viewtop ... 67#p231767
Code : Tout sélectionner
ClearBuffer = AllocateMemory(256)
If ClearBuffer
SetKeyboardState_(ClearBuffer)
FreeMemory(ClearBuffer)
EndIf
Je l'ai rajouté entre les deux comme ça et ça a l'air de marcher
Code : Tout sélectionner
If GetAsyncKeyState_(#VK_LBUTTON)
ClearBuffer = AllocateMemory(256)
If ClearBuffer
SetKeyboardState_(ClearBuffer)
FreeMemory(ClearBuffer)
EndIf
If GetAsyncKeyState_(#VK_CONTROL)
Parce que j'ai essayé de modifier ma condition comme tu viens de me donner, mais vu que c'est tout imbriqué, j'arrive pas a m'en sortir
