GetAsyncKeyState

sebleboss2002 Messages postés 189 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 3 avril 2005 - 4 nov. 2003 à 18:59
DropF Messages postés 18 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 28 avril 2005 - 6 nov. 2003 à 00:05
Bon, c'est encore moi, ce coup-ci, j'ai trouvé (plus ou moins) comment faire ce que je voulais :

#include 
#include <windows.h>
#include <conio.c>

int i;
char var;

int main()
{
   while (1)
  {
   if(GetAsyncKeyState(VK_TAB)==-32768){cout << "prout";}
  }
  return 0;
}


Le seul problème étant que lorsque j'appuie sur Tab, j'ai une miryade de "prout" dans ma console... Comment éviter ça ?

Et pour la suite de mon programme, je voudrais que la fenêtre soit cachée, et que la fonction intercepte TOUTES les touches pressées, même en dehors de la console. Est-ce possible ou est-ce que je suis obligé de passer par un Hook, dont je ne comprends rien ?

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 nov. 2003 à 19:18
c'est hook ou driver alors tu choisis mais je te promets qu'un hook est enormement plus simple.
BruNews, ciao...
0
sebleboss2002 Messages postés 189 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 3 avril 2005
4 nov. 2003 à 20:23
Bon, ben merci pour le conseil, mais alors, où puis-je trouver une explication de code pour gros noob d'un hook, parce que je lis pleins d'exemples de hooks sur machins, hook sur bidule... Mais je me refuse à copier le code sans comprendre... Donc voilà, si quelqu'un se sent le courage de m'expliquer, ou si vous avez une bonne adresse, je suis preneur, merci !
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 nov. 2003 à 20:28
Si tu lis l'Anglais d'info qui tient en 100 mots maxi:
http://perso.wanadoo.fr/persans-brunews/
JR4.zip et JR4Sources.zip
BruNews, ciao...
0
DropF Messages postés 18 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 28 avril 2005
6 nov. 2003 à 00:05
Sinon, tu peux utiliser une variable d'état de l'appui de la touche. Regarde (testé et fonctionne sous Visual C++ .NET 2003) :
#include 
#include <windows.h>
#include <conio.h>

using namespace std;

int main(void)
{
bool bKeyState = true;

while (1)
{
if(GetAsyncKeyState(VK_TAB) < 0)
{
if (bKeyState)
cout << "prout" << endl;
bKeyState = false;
}
else
bKeyState = true;
}
return 0;
}
0
Rejoignez-nous