Tasteneingabe an Spiel senden



  • berniebutt schrieb:

    Hier sind wir im Forum WinApi unterwegs. Da gibt es noch die Möglichkeit, alle Maus- und Tastatureingaben vor der vorgesehenen Verarbeitung mit Subclassing selbst umzubiegen und anderes zu veranlassen.

    Bringt nur was, wenn das Zielprogramm auch WM_KEYDOWN&Partner verwendet.



  • injektion->Adminrecht schrieb:

    berniebutt schrieb:

    Hier sind wir im Forum WinApi unterwegs. Da gibt es noch die Möglichkeit, alle Maus- und Tastatureingaben vor der vorgesehenen Verarbeitung mit Subclassing selbst umzubiegen und anderes zu veranlassen.

    Bringt nur was, wenn das Zielprogramm auch WM_KEYDOWN&Partner verwendet.

    Bitt laß diesen Unfug mit WM_KEYDOWN & Co zu senden!
    Siehe auch "Die Unsitte Tastatureingaben mit WM_KEYDOWN Nachrichten zu simulieren" (Link habe ich bereits weiter oben angegeben)

    Martin



  • Mmacher schrieb:

    Bitt laß diesen Unfug mit WM_KEYDOWN & Co zu senden!

    ich habe nie Vorgeschlgen mit subclassing zu arbeiten 😉



  • Hallo, ich hab irgendwann damit aufgeben mit dem Tastendruch an Guild Wars senden.
    Jetzt wollte ich es aber nochmal wissen, also hab ich AutoIT wieder installiert und geschrieben:

    AutoIT Code

    Sleep(2000)
    Send("1")
    

    Dann das Programm compiliert und den OllyDebugger ausgepackt. ( Das hätte ich mal ehr machen sollen ... )

    Und das Geheimnis der ganzen Sache ist der Scancode.

    Und so funktioniert es perfekt:
    Ohne AttachThreadInput und so späße.

    #include <windows>
    #include <iostream>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
    
    Sleep(2000);
    
    INPUT data;
    data.type = INPUT_KEYBOARD;
    data.ki.wVk = 	0x31;
    data.ki.wScan = 2;  // scan code für taste 1
    data.ki.dwFlags = 0;
    data.ki.time =0;
    data.ki.dwExtraInfo = 0;
    SendInput (1 , &data, sizeof(data));  // taste drücken
    
    data.ki.dwFlags = KEYEVENTF_KEYUP;
    SendInput (1 , &data, sizeof(data)); // taste loslassen
    
    return 0;
    }
    //---------------------------------------------------------------------------
    


  • Btw. AutoIT verwendet die Funktion: keybd_event Die sollten vielleicht auch mal ein Update machen.^^


Anmelden zum Antworten