hibouman
Messages postés13Date d'inscriptiondimanche 1 juin 2003StatutMembreDernière intervention21 juin 2006
-
31 mai 2006 à 20:10
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
1 juin 2006 à 08:04
hello,
je débute en c# et j'ai importé la dll qui me permet d'utiliser GetKeyState.
Voilà le probleme:
Je veux que mon prg affiche une messagebox lorsque l'utilisateur presse la touche ESPACE (QUELQUE SOIT L'ENDROIT , donc pas forcement sur une form).
J'ai donc ecrit:
Le probleme c'est que ça ne marche qu'une fois sur 2 car celà ne signifie pas " si l'utilisateur presse la touche espace" mais " si la touche espace est enfoncée".
Si je presse la touche espace avant de lancer le prg, 1 fois sur 2 windows m'affiche "espace enfoncé" car il garde cette pression en mémoire.
Comment faire ? j'ai lu un truc sur SetKeyboardState mais je ne vois pas comment faire
hibouman
Messages postés13Date d'inscriptiondimanche 1 juin 2003StatutMembreDernière intervention21 juin 2006 31 mai 2006 à 21:04
aillait j'ai trouvé !!!!!!
il suffisait d'ecrire:
if(GetAsyncKeyState(0x20) != 0) MessageBox.Show("espace enfoncé");
et non
if(GetKeyState(0x20) == 1) MessageBox.Show("espace enfoncé");
Ca me semble tres important car bcp de gens ont du avoir ce probleme et il n'y a pas de reponse sur le net !!! du moins tres difficilement trouvable...
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 1 juin 2006 à 08:04
Pour être précis il faut tester le bit le plus élèvé, sachant que le bit le plus faible peut aussi avoir une signification pour les touches commes CapsLock qui reste vérouillée.