Hallo,
Ich versuche schon seit Stunden mein Delphi programm dazu zu überreden in einem anderen Programm auf einen Unterpunkt im Menü zu klicken.
Mit diesem Code ermittle ich das
Handle des anderen Programms:
Delphi-Quellcode:
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
NextHandle: Hwnd;
NextTitle: array[0..260] of char;
begin
// Get the first window
NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
while NextHandle > 0 do
begin
// retrieve its text
GetWindowText(NextHandle, NextTitle, 255);
if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
begin
Result := NextHandle;
Exit;
end
else
// Get the next window
NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
end;
Result := 0;
end;
Das funktioniert auch wunderbar.
Nun hab ich das
Handle des Programms und nun möchte ich automatisch auf "Start Capture" klicken lassen....wie stelle ich das an? Wie man sieht gibt es dafür keinen Tasten-Shortcut. Der "klick" muss auch unabhängig von der Position des Programms auf dem Bildschirm sein.
Ich habe mir überlegt, dass es einfach wäre zu simulieren: ALT drücken => "nach unten taste" => 3x nach rechts bis "capture" => dann "ENTER"
Allerdings scheitert es schon daran, dass ich zwar Buchstaben simulieren kann mit:
Delphi-Quellcode:
PostMessage(h,WM_KEYDOWN,68,0);
PostMessage(h,WM_CHAR,68,0);
PostMessage(h,WM_KEYUP,68,0);
jedoch das drücken der ALT Taste funktioniert anscheinend nicht richtig.
Probiert hab ich es mit:
Delphi-Quellcode:
PostMessage(h,WM_SYSKEYDOWN,VK_MENU,0);
PostMessage(h,WM_SYSKEYUP,VK_MENU,0);
Für Tipps wäre ich sehr dankbar.