ich habe folgendes Problem:
ich möchte das Handle einer laufenden Anwendung ermitteln und dieser Anwendung Tastendrücke simulieren. Also gewissermaßen die Anwendung „fernsteuern“
GetModuleHandle liefert allerdings nur Handles von DLL’s.
Gibt es so eine Funktion auch für EXE-Files?
ich habe folgendes Problem:
ich möchte das Handle einer laufenden Anwendung ermitteln und
dieser Anwendung Tastendrücke simulieren. Also gewissermaßen
die Anwendung „fernsteuern“
Ich glaube, dass ich ziemlich genau das Gleiche auch schon mal gemacht habe. Such mal nach FindWindow() oder so ähnlich in der Dokumentation oder im Msdn. Da Brauchst du dann nur den Fensternamen oder den Fensterklassennamen und schon bekommst du das Handle zum Fenster.
Ich habe mal versucht mit dieser Methode Tastendrücke an ein Spiel zu senden. Hat aber leiber nur mäßig geklappt. Aber für normale Programme sollte es funktionieren.
Mfg Marius
GetModuleHandle liefert allerdings nur Handles von DLL’s.
Gibt es so eine Funktion auch für EXE-Files?
Es gibt auch eine von Windows vorgesehene Schnittstelle, um Programme fernzusteuern: Und zwar per Message Hooking. Hierbei klinkt man sich direkt in die Windows Message Loop von der fernzusteuerenden Anwendung ein, und kann dieser dann Meldungen senden.
Hierbei muss man eine Dll schreiben, welches einen CBT Hook mit der Funktion SetWindowsHookEx() installiert. In deiner Dll wird dann eine Funktion CBTProc() aufgerufen, in welcher du der anderen Applikation Meldungen senden kannst. Mit CBT ist Computer based Training gemeint, dass war die ursprüngliche Idee, weshalb es diese Möglichkeit gibt. Oder es lassen sich Tastendrücke aufzeichnen und wieder abspielen (mit WH_JOURNALRECORD / WH_JOURNALPLAYBACK).
Ist leider alles nicht ganz trivial.