Ich habe folgenden Aufruf, mit dem ich ein fremdes Programm starte:
Delphi-Quellcode:
FillChar(StartupInfo, SizeOf(StartupInfo), 0);
FillChar(ProcessInfo, SizeOf(TProcessInformation), 0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_SHOWNORMAL;
StartupInfo.dwX := XPos;
StartupInfo.dwY := YPos;
if CreateProcess(nil,
PChar(Filename + ' ' + para),
nil,
nil,
False,
0,
nil,
nil, //PChar(Para),
StartupInfo,
ProcessInfo) then
begin
Das klappt ganz gut. Ich merke mir die Postion um beim nächsten Start ist alles OK.
Dann nimmt ein User seinen Laptop mit nach Hause, wo der Monitor rechts nebem dem Laptop und nicht links. Dann sehe ich zwar in der Taskleiste, dass sich das Programm geöffnet hat, aber es wird nicht angezeigt. Das gleiche passiert, wenn man einen Beamer angeschlossen hat und auf diesem Beamer das Programm nutzt. Wenn ich da den Beamer ausschalte, versucht Windows trotzdem, das Programm auf dem Beamer darzustellen.
Wie kann ich so etwas verhindern?