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.^^