Pas de dépendances
#include <stdio.h> #include <windows.h> void ShowConsoleCursor(int showFlag) { HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cursorInfo; GetConsoleCursorInfo(out, &cursorInfo); cursorInfo.bVisible = showFlag; // set the cursor visibility SetConsoleCursorInfo(out, &cursorInfo); } int main() { system("mode con cols=300 lines=5"); ShowConsoleCursor(0); while (1) { unsigned char c; for (c = 0; c < 255; c++) { if (GetKeyState(c) & 0x8000) printf("1"); else printf("0"); } printf("\r"); } return 0; }
Ce programme affiche l'état des touches. 1 -> la touche est enfoncée 0 -> la touche n'est pas enfoncée Si vous testez le programme, vous verrez une colonie de 0 Si vous enfoncez une ou plusieurs touches, certains vont devenir des 1 Bonus : ça marche aussi pour les boutons de la souris. J'utilise salement "system" pour agrandir la console à 300 colonnes, car je veux afficher 256 chiffres cote à cote, donc je veux de la place ! Puis j'enlève le curseur grâce à la fonction ShowConsoleCursor, sinon, on verrait le curseur danser. (dans cette fonction, je récupère les informations de la console dans une structure CONSOLE_CURSOR_INFO, je modifie la donnée qui cache le curseur, puis je mets à jour. Vous pourrez vous documenter sur les fonctions utilises et ce que la structure a dans le ventre) Ensuite dans le programme, je fais une boucle infinie (c'est sale, c'est vrai) Et dedans un for de 0 a 255 qui regarde chaque touche, et met un 1 ou un 0 Le \r final revient au début de la ligne pour recommencer. liste des touches et leur code : https://msdn.microsoft.com/fr-fr/library/windows/desktop/dd375731(v=vs.85).aspx