Frage zu Windows API

Hallo,

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?

Schon mal im Voraus Danke

Hallo,

Hi

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?

Schon mal im Voraus Danke

Hallo Leute,

Da bin ich gestern auf der Leitung gestanden: Mit GetFocus() kriegt man das HWND des aktuellen Fensters. Aber es gibt sicher noch andere.

lg
Martin B

Hi Bernhard!

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.

Allgemeine Einführung in Deutsch: http://www.joachimrohde.com/cms/xoops/modules/articl…

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.

Grüsse,
Stefan