Taste filtern
-
Hallo ihr Lieben Helfer.
Ich habe ein Programm geschrieben, was eine Aktion ausführen soll, wenn die F11 Taste gedrückt wird. Das soll im laufenden Programm funktioneren.
Wie geht es nun, das wenn ich das Spiel offen habe, trotzdem das Programm die Taste erkennt und die Aktion ausführt...?Schonmal danke im Voraus.
-
KÖNNT IHR MIR BITTE HELFEN....
-
-
ein zweiter thread ginge auch, der auf ReadConsoleInput wartet
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684961(v=vs.85).aspx
und INPUT_RECORD auswertet
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645540(v=vs.85).aspx
-
kbhit()... wenn ich mich nicht vertue.
-
Ich glaub ihm gehts darum, dass seine Anwendung den Tastendruck mitbekommt, auch wenn sie gerade nicht den Fokus hat
-
dot hat da schon recht!
nur ihc komme mit der msdn nicht klar...nicht wegen dem englisch sondern generell.
kann mir wer das erklären.Mein Programm soll für MW2 Private Lobbys ein HalfscopeBot sein. Wenn man die F11 drückt, die ich auf meine Funktionstasten bei der Maus legen kann, soll eine abfolge von mausklicks erfolgen, die dann den PERFEKTEN halfscope durchführt.
Nun geht das eber nur, wenn das Programm im Hintergrund ist, und dann erkennt MW2 die Taste nichtmehr. VLT hat das ja gehlofen.Hier ist auch der bisherige Code
#include <stdio.h> #include <stdlib.h> #include <windows.h> #define AE (unsigned char)142 #define ae (unsigned char)132 #define OE (unsigned char)153 #define oe (unsigned char)148 #define UE (unsigned char)154 #define ue (unsigned char)129 #define ss (unsigned char)225 int main() { int i=0; do{ POINT punkt; int taste; int x, y; HWND fenster=FindWindowA("ConsoleWindowClass",0); ShowWindow(fenster,0); taste=getch(); if(taste==0||taste==224) { taste=getch(); if(taste==133) { GetCursorPos(&punkt); x=punkt.x; y=punkt.y; mouse_event(MOUSEEVENTF_RIGHTDOWN,x,y,0,0); sleep(1000); mouse_event(MOUSEEVENTF_LEFTDOWN,x,y,0,0); mouse_event(MOUSEEVENTF_LEFTUP,x,y,0,0); mouse_event(MOUSEEVENTF_RIGHTUP,x,y,0,0); } } }while(i==0); return 0; }
-
Na mit getch() kommst du da nicht weit, du brauchst einen Keyboard Hook.
-
Ich verschiebe dich mal nach WinAPI für den Keyboard Hook...
MfG SideWinder
-
Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
OK, dann nochmal: Wie geht das denn mit dem Keyboard Hook, am besten wäre es, wenn einer gleich den Code umschreiben würde. Ich blicke das echt nicht
-
Wo genau liegt das Problem? Hier gibts auch ein Beispiel: http://msdn.microsoft.com/en-us/library/windows/desktop/ms644960.aspx#system_events
-
Ich habe doch schon gesagt, dass ich das nicht verstehe. Deshalb würde ich mich ja freuen, wenn jemand meinen Code so ändern könnte, dass es funktioniert. Du scheinst das ja alles zu verstehen, ich NICHT!
PS: Könntest du das bitte wirklich machen?
-
Ich helf dir gerne dabei es zu verstehen. Dazu müsstest du allerdings erstmal konkret sagen was genau du nicht verstehst...
-
Ich verstehe nicht an welcher Stelle ich meine Schleife einbauen soll. Und Außerdem bringt dev c++ die Fehlermeldung das app.h nicht gefunden wurde.
-
Du brauchst keine Schleife. Du registrierst den Hook beim System und deine Hookprozedur wird dann jedesmal wenn eine Taste gedrückt wird vom Betriebssystem aufgerufen.
Was Dev-C++ angeht, kann ich dir nur schwer dazu raten, dir eine bessere IDE zu suchen.
-
OK. Ich habe das jetzt mit Visual C++ versucht und festgestellt, dass auch der die app.h nicht findet. Was soll ich jetzt machen, bzw. wo bekomm ich die her?
-
Wofür brauchst du die überhaupt?
-
das steht doch da direkt im header. die app.h ist eigebunden und wenn ich die rauslasse spuckt der compiler ne menge fehler aus und es geht nicht
und wenn es drin ist dann findet er sie nicht und dann geht es nicht.kannst du nicht einfach wirklich den code hier posten
damit ich sehe wie es aussehen muss
-
Der Code in der MSDN ist ein Beispiel, das die Verwendung von Hooks demonstriert und natürlich nicht die Copy&Paste Lösung für dein Problem.
Ich gehe davon aus, dass die Motivation für dieses kleine Projekt das Interesse daran ist, wie so etwas funktioniert. Zweifellos könnte ich dir eine fertige Lösung vorwerfen. Dann hättest du aber absolut nichts dabei gelernt. Darum werd ich das nicht tun. Konkrete Fragen werd ich dir aber, wie gesagt, gerne und nach bestem Wissen und Gewissen beantworten