C++ Tasten simulieren
-
Vielleicht kennt jemand das Game "Athletics", oder das
Snickers City Game von GIGA. In diesen Spielen geht es darum, die Pfeiltasten (rechts und links) so schnell
wie moeglich hintereinander zu druecken. Dann rennt der Laeufer.
Es muesste doch moeglich sein, ein Programm mit C++ zu coden, dass dieses
Tastendruecken automatisch ausfuehrt. So dass man es nur zu starten braucht und der Laeufer von 'alleine' laeuft.
Man muesste die WinAPI verwenden koennen und ebenfalls die WindowIP wissen.Vielleicht kann mir jemand helfen.
Auf jeden Fall schonmal Danke fuer eure Muehe.
Raptor
-
keybd_event(), FindWindow() und SetForegroundWindow()
-
ich habs schon stunden lang versucht zuschreiben aber bei mir gehts net dass sich des männle bewegt sondern nur des scroolteil
-
Was für ein "scroolteil"
Evtl. sitzt dein Fokus noch falsch -> SetFocus
-
ne geht auch nich
-
was für ein hwnd hast du denn genommen? Und falls DirectInput verwendet wird geht das so eh nicht
-
stimmt da wird direct input verlangt aber wie kann ich des umgehen????
-
Wie machst du's denn jetzt??? Mit keybd_event?
-
keine ahnung
-
Dann lass es!
-
-
Vielleicht koennte jemand mal einen funktionierenden Sourcecode posten,
den ich mir bzw. andere ansehen kann.
-
Schau doch in die MSDN und stell vernünftige Fragen. Für so einfache Sachen wird hier keine Komplettlösung geboten!!!
-
des is nich einfach
und des mit dem direct input geht auch nich
-
hier hast du ein paar ansätze wie ich das gelöst habe (bei "anno 1602" die taste F7 druecken, damit das spiel die ganze zeit schnell geht)
HWND hWindow = FindWindow (NULL, "ANNO 1602") ; SetForegroundWindow (hWindow) ; keybd_event (VK_F7, 0, 0, NULL) ; keybd_event (VK_F7, 0, KEYEVENTF_KEYUP, NULL) ;
mfg
toom
-
genau des hab ich auch davor geschrieben aber des klappt net
-
vielleicht findet ihr ja den fehler
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HWND hwcheat; int rc; char buf[100]; HDC hdc; hdc=GetDC(hwnd); hwcheat=FindWindow(0,"GIGA.de - Microsoft Internet Explorer"); rc=SetForegroundWindow(hwcheat); switch (message) { case WM_TIMER: keybd_event(VK_RIGHT,0 ,0,0); keybd_event(VK_RIGHT,0,KEYEVENTF_KEYUP,0); keybd_event(VK_LEFT ,0, 0,0); keybd_event(VK_LEFT,0,KEYEVENTF_KEYUP,0); break; case WM_DESTROY: PostQuitMessage (0); break; default: return DefWindowProc (hwnd, message, wParam, lParam); } return 0; }
-
Müsste klappen - auch, wenn's nicht perfekt ist.
-
Ist das ein Online-Spiel? Evtl. darfs du den Focus nicht auf das Hauptfenster setzten, sondern musst ihn auf ein Child (z.B. das des JavaAppletts setzen)
-
check mal gibt FindWindow () zurück gibt?