PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit Delphi Eingaben (Tastendrücke) an Windows-Applikationen weitergeben?


aths
2008-11-26, 14:00:05
Ich möchte aus Delphi heraus an eine Windows-Applikation eine Art Forumular ausfüllen indem ich Buchstaben, Tabulator-Taste etc. übergebe, so als säße ein Benutzer dran.

Geht das? Wenn ja, wie prinzipiell?

Markus89
2008-11-26, 15:15:04
Hallo,

das sollte doch ganz einfach gehen, indem du dir mit FindWindow() oder ähnlichem das Handle von dem Fenster holst und dann per PostMessage() den Tastendruck sendest.

So in der Art:


var
wnd: HWND;
begin
wnd:= FindWindow(..);
PostMessage(wnd, WM_KEYDOWN, VK_TAB, 0);
end;

aths
2008-11-28, 10:52:38
Das gucke ich mir übers Wochenende mal an. Danke für die Schlagworte.

aths
2008-12-09, 16:01:42
Mit FindWindow finde ich notepad und Trillian, aber keine weiteren Anwendungen. Ich versuche den Namen der Titelzeile zu nehmen, das was als Applikationsname in der Taskbar steht oder das was im Vista-Taskmanager steht -- er liefert immer nur 0 zurück.

Markus89
2008-12-09, 16:19:28
Hallo,

dir fehlt wohl der Klassenname, den bekommt man, zB. mit dem Programm "WinSpy".
Ich habe mir das mal kurz angeschaut und es gibt auch eine Funktion, mir der man die Klasse bekommt - dafür braucht man aber das Handle, welches man mit FindWindow() bekommt. Damit wäre man wieder am Anfang. Deswegen versuch es mal mit dem Programm.

Edit: Was auch noch geht, aber wohl nicht so elegant ist:

Hol dir das Handle von deinem Fenster mit WindowFromPoint().

Markus

aths
2008-12-15, 08:56:45
Danke, das hat erneut weitergeholfen.