Hallo,
bin momentan etwas verwirrt...
ich starte mit CreateProcess ein externes Programm:
Delphi-Quellcode:
function RunProcess(FileName: string; ShowCmd: DWORD; wait: Boolean; ProcIDRunProcess: PDWORD): TProcessInformation;
var
StartupInfoRunProcess: TStartupInfo;
ProcessInfoRunProcess: TProcessInformation;
ExitInfo : PExitThreadDebugInfo;
begin
FillChar(StartupInfoRunProcess, SizeOf(StartupInfoRunProcess), #0);
StartupInfoRunProcess.cb := SizeOf(StartupInfoRunProcess);
StartupInfoRunProcess.dwFlags := STARTF_RUNFULLSCREEN
or STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
StartupInfoRunProcess.wShowWindow := ShowCmd;
if not CreateProcess(nil,@Filename[1],nil,nil,False,CREATE_BREAKAWAY_FROM_JOB or CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,nil,StartupInfoRunProcess,ProcessInfoRunProcess) then begin
Result.hProcess := WAIT_FAILED;
end
else
begin
Result := ProcessInfoRunProcess;
if wait = FALSE then
begin
// if ProcIDRunProcess <> nil then ProcIDRunProcess^ := ProcessInfoRunProcess.dwProcessId;
exit;
end;
WaitForSingleObject(ProcessInfoRunProcess.hProcess, INFINITE);
GetExitCodeProcess(ProcessInfoRunProcess.hProcess, Result.hProcess);
end;
if ProcessInfoRunProcess.hProcess <> 0 then
CloseHandle(ProcessInfoRunProcess.hProcess);
if ProcessInfoRunProcess.hThread <> 0 then
CloseHandle(ProcessInfoRunProcess.hThread);
end;
Ablauf: FremdSoftware1 gibt meiner App den Befehl für CreateProcess
Meine App öffnet dann FremdSoftware2
Die FremdSoftware2 möchte ich nun Maximized & FullScreen (keine Taskleiste sichtbar) starten.
Wenn der Ablauf nun startet ist ja zuerst FremdSoftware1 in der Taskleiste aktiv. Nun wird FremdSoftware2 gestartet und taucht auch in der Taskleiste auf. Aber aktiv bleibt FremdSoftware1.
Obwohl ich auch mit SetForegroundWindow die FremdSoftware2 im Vordergrund hole.
Bei diesem Command blinkt nur der Taskleisteneintrag von FremdSoftware2.
Wenn ich dann mit der Mouse auf den Taskleisteneintrag drücke verschwindet die Leiste und FremdSoftware2 ist im Vordergrund.
Was ist hier los?
Kann man einen Taskleistenklick per Code durchführen?