Schwierig ist der Teil "merken Welches Programm vorher den Fokus hatte". Wenn man das
Handle dieses Fensters hat, reicht
Delphi-Quellcode:
GetWindowThreadProcessId(OtherHandle, pid);
if pid = 0 then begin
LogInfo('Process Id for Windows ' + _WndClass + ' not found');
Exit;
end;
Res := AllowSetForegroundWindow(pid);
if not Res then begin
LogInfo('AllowSetForegroundWindow for ' + _WndClass + ' failed');
Exit;
end;
Res := SetForegroundWindow(OtherHandle);
if not Res then
LogInfo('SetForegroundWindow for ' + _WndClass + ' failed');
Ich weiss allerdings nicht, wie man das vorher aktive Programm ermittelt. Evtl. einfach beim Start das Fenster im Vordergrund ermitteln? Oder vielleicht das, welches unter dem eigenen Fenster liegt?