Eingabe (Tastatur/Mouse/Joysdtik) abfangen (Listener)
-
Hi
Ich will ein Programm schreiben was alle Einaben(Keyboard,Mouse..) abfängt
und speichert, so das man das ganze später wieder aufrufen kann.Hintergrund: gebraucht wird das für Forschung im Bereich Spiele. Wenn ein
solches Prog läuft kann man mit den gespeicherten Infos Spiele "nachspielen"
(da alle Benutzereingaben vorhanden sind, da gespeichert).Die wesentlichsten Probleme aus meiner sicht sind:
1. An welcher Stelle klinkt ich mich ins Win ein bzw. wie erstelle ich ein
"autonomes" Programm welches die Eingaben für einen bestimmten Prozess
(Task) abfängt ? Probleme seh ich hier vor allem im Thread handling.2. Welche Programmiersprache ? (VB,C/C++,Java) vorteile/nachteile
Ich hoff mal das ich hier im WinApi bereich richtig bin. habe in VB bereits
sehr viel mit API gemacht und bin der meinung das das grundsätzlich funzen
sollte. Mein größtes Prob ist aber wie gesagt, wie ich das programm in den
"hintergrund" bringe bzw. wie ich mit einem prog das OS "überwachen" kann.
Neben synchronisations probs werd ich wohl auch mit zugriffsrechten probs
haben.Vorerst such ich nach ansätzen und einstiegsmöglichkeiten. Sorry wenn das
ganze recht relativ formuliert ist. bin noch kein Win crack.achja eine konkrete frage kann ich schon stellen:
Progs brauchen ja meist recht lange eh sie hochgefahren sind. dh. es gibt eine
zeitliche differenz zwischen aktivieren(starten) und der entgegennahme von
eingaben (mouse,keyboard). gibts über die API ne möglichkeit rauszufinden
wenn ein prog fertig hochgeladen hat ?Danke im Vorraus.
pain
-
Also solche Nachrichten kannst du prinzipiell abfangen, indem du einen systemweiten Hook (SetWindowsHookEx) einrichtest - Beispiel-Code gibts afaik z.B. in den FAQ
Bei Spielen wird es hier aber schwierig - insbesondere mit dem Abspielen der aufgezeichneten Nachrichten - da diese oft direkt auf die Hardware (z.B. per DirectInput o.ä.) zugreifen. Da geht das dann nicht mehr so ohne weiteres
pain_md schrieb:
Progs brauchen ja meist recht lange eh sie hochgefahren sind. dh. es gibt eine zeitliche differenz zwischen aktivieren(starten) und der entgegennahme von eingaben (mouse,keyboard). gibts über die API ne möglichkeit rauszufinden wenn ein prog fertig hochgeladen hat?
Suchst du vielleicht sowas wie WaitForInputIdle?!
-
Hi
Danke für die Antwort. Bringt mich zumindest etwas weiter. und ja, sowas
wie WaitForInputIdle such ich tatsächlich ;-). thxpain