Hallo,
ich möchte Daten an ein Eingabefeld senden.
In "normalen" Windows-Programmen kann ich dies über folgenden Code durchführen.
Delphi-Quellcode:
function GetFocussedWindow(ParentWnd:HWnd):HWnd;
var OtherThreadID,Buffer:DWord;
begin
OtherThreadID := GetWindowThreadProcessID(ParentWnd, @Buffer);
if AttachThreadInput(GetCurrentThreadID, OtherThreadID, true) then
begin
Result := GetFocus;
AttachThreadInput(GetCurrentThreadID, OtherThreadID, false);
end
else
begin
Result:=0;
end;
end;
var
ActWindow, TargetWindow: HWND;
KeyData : packed record
RepeatCount : word;
ScanCode : byte;
Bits : byte;
end;
Character : byte;
begin
ActWindow := GetForegroundWindow;
if ActWindow <> 0 then
TargetWindow:= GetFocussedWindow(ActWindow);
if TargetWindow <> 0 then
//...
PostMessage(TargetWindow, wm_char, Character, LongInt(KeyData));
//...
begin
end;
end;
Das funktioniert seit Jahren unter Windows, auch bei Programmen unter Windows 10.
Aber leider nicht mehr in den Windows 10 Apps, wie z.B. Edge
ActiveWindow
lässt sich ermitteln, aber nicht das für
Postmessage
notwendig
Handle.
Weiß zufälligerweise jemand Bescheid, wie man das
Handle in einer Windows 10 App ermittelt?
Beste Grüße
amigage