wie der name bereits andeuten lässt, würde ich gerne in meiner applikation einer anderen den fokus/die eingabe geben und frage mich ob es so richtig ist bzw wie es richtig gemacht wird.
hier ist mein momentaner code
Delphi-Quellcode:
function Foobar(const TargetWindow: HWND = 0): Boolean;
var
OldFocus: HWND;
TargetThreadID: Cardinal;
begin
Result := False;
OldFocus := GetFocus;
if (TargetWindow = 0) then
Exit;
TargetThreadID := GetWindowThreadProcessId(TargetWindow, nil);
AttachThreadInput(GetCurrentThreadId, TargetThreadID, True);
SetFocus(TargetThreadID);
// hier wird mehr code ausgeführt während der andere prozess den fokus hat
Result := (SetFocus(OldFocus) <> 0);
end;