état d'une touche, focus, économie cpu

rnosat Messages postés 132 Date d'inscription mardi 31 octobre 2000 Statut Membre Dernière intervention 2 mai 2004 - 10 sept. 2003 à 05:46
ratala Messages postés 248 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 22 juin 2008 - 25 juin 2006 à 18:18
Big Rno :big) Hello !

Salut,
quel est le moyen le moins gourmand en utilisation ressource pour savoir en permanence l'etat appuyé ou non d'une touche, meme si l'application qui recoit l'état de la touche n'a pas le focus ?
Compliqué comme question ?
Merci de vos com.
A+

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 sept. 2003 à 08:51
si l'application n'a pas le focus elle ne recoit pas de touche mais elle doit interroger le systeme pour le savoir:
GetKeyState(...);
Si tu n'as pas le focus il te faut une boucle et alors adieu ressources systeme. La methode est le hook systeme sur clavier, il te faudra donc une vraie dll (C ou ASM).
BruNews, ciao...
0
cs_nicam Messages postés 3 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 24 juin 2006
7 déc. 2003 à 19:03
voila un petit code pour savoire la touche appuiée il bug des foi mas sa peut t'aider.

y faut mettre un text box s'appelant: text1
et un timer s'appelant: timer1

Private Declare Function GetAsyncKeyState Lib "user32"(ByVal vKey As Long) As Integer

Private Sub Form_Load()
Timer1.Interval = 10
End Sub

Private Sub Timer1_Timer()
For a = 0 To 256
If GetAsyncKeyState(a) <> 0 Then Text1.Text = "Code " & a & " - CARACTAIRE " & Chr$(a)
Next
End Sub
0
ratala Messages postés 248 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 22 juin 2008
25 juin 2006 à 18:18
Bonjour,
C'est quoi la difference entre getkeystate et getasynckeystate ?
0
Rejoignez-nous