Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#1

Focus auf externen prozess setzen

  Alt 22. Jan 2022, 16:40
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;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat