Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
Delphi 12 Athens
|
AW: Tastendruck an Fremdsoftware
14. Apr 2021, 23:02
Hallo Zusammen,
Ich habe gerade noch ein bißchen getestet und probiert und dabei eine Lösung gefunden, die ich morgen in schöner bauen werde:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var I: Integer;
wnd, hApp: HWND;
CName: array [0 .. 255] of Char;
begin
hApp := FindWindow( nil, ' FremdSoftware'); //Handle der Software
GetClassName(hApp, CName, 256);
wnd := FindWindowEx(hApp, 0, CName, ' Menue'); // Handle des Menüs
//Wählt den ersten Hauptmenüpunkt
PostMessage(wnd, WM_KEYDOWN, VK_Right, 0);
PostMessage(wnd, WM_KEYUP, VK_Right, 0);
//Wählt den zweiten Hauptmenüpunkt
PostMessage(wnd, WM_KEYDOWN, VK_Right, 0);
PostMessage(wnd, WM_KEYUP, VK_Right, 0);
//Öffnet mit ENTER das PullDownMenü des zweiten Hauptmenüpunkt
PostMessage(wnd, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(wnd, WM_KEYUP, VK_RETURN, 0);
//Markiert den ersten Eintrag des PullDownMenüs
PostMessage(wnd, WM_KEYDOWN, VK_Down, 0);
PostMessage(wnd, WM_KEYUP, VK_Down, 0);
//Markiert den zweiten Eintrag des PullDownMenüs
PostMessage(wnd, WM_KEYDOWN, VK_Down, 0);
PostMessage(wnd, WM_KEYUP, VK_Down, 0);
//Markiert den dritten Eintrag des PullDownMenüs
PostMessage(wnd, WM_KEYDOWN, VK_Down, 0);
PostMessage(wnd, WM_KEYUP, VK_Down, 0);
//Markiert den vierten Eintrag des PullDownMenüs
PostMessage(wnd, WM_KEYDOWN, VK_Down, 0);
PostMessage(wnd, WM_KEYUP, VK_Down, 0);
//Führt den vierten (markierten) Menüpunkt aus
PostMessage(wnd, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(wnd, WM_KEYUP, VK_RETURN, 0);
end;
Damit scheint es zu funktionieren... Offensichtlich brauche ich das Menü garnicht mit ALT oder F10 zu aktivieren. Mit dem entsprechenden Handel kann ich darin direkt navigieren...
Gute Nacht
Patrick
Patrick
Geändert von Ykcim (14. Apr 2021 um 23:04 Uhr)
|