Keys senden "hört auf"



  • Guten Tag,

    habe auf die schnelle ein kleines Script gemacht, dass einfach nur die Leerstaste spammen soll.

    Wenn ich jetzt nur die Leertaste gedrückt halte, funktioniert es, wenn jetzt jedoch währen des drückens der Leertaste bspsw. A, D S, W gedrückt wird, bricht die Funktion das Senden ab.. aber warum?

    for(;;)
    {
    	if(GetAsyncKeyState(VK_SPACE) & 0x1)
    	{
    		KEYBDINPUT  kb = { 0 };
    		INPUT       Input = { 0 };
    
    		kb.wVk = VK_SPACE;
    		Input.type = INPUT_KEYBOARD;
    		Input.ki = kb;
    		SendInput(1, &Input, sizeof(Input));
    
    		Sleep(5);
    		/* Generate a "key up" */
    		ZeroMemory(&kb, sizeof(KEYBDINPUT));
    		ZeroMemory(&Input, sizeof(INPUT));
    		kb.dwFlags = KEYEVENTF_KEYUP;
    		kb.wVk = VK_SPACE;
    		Input.type = INPUT_KEYBOARD;
    		Input.ki = kb;
    		SendInput(1, &Input, sizeof(Input));
    	}
    }
    

    Wie könnte man das lösen ? 🙂



  • Ich denke das ist ganz normales Windows Verhalten. Öffne mal einen Texteditor und halte die Leertaste gedrückt und drücke dann eine Buchstabentaste. Macht genau das was du als vermeindlichen Fehler beschreibt.



  • oh okay, stimmt

    kann ich das irgendwie verhindern, bzw welche möglichkeiten gibt es dies zu verhindern?

    vielleicht noch eine hilfreiche information ist, dass es für ein Spiel verwendet wird. (vielleicht tasten an fenster senden? wobei ich benutze eine DLL die injected ist.)



  • Na für den Strafe Jump Cheat darf du von mir keine Hilfe erwarten.



  • wie wärs, wenn dein script in eigenen thread laufen lässt..schon mal probiert... :p