Hallo
Ich wollte eine DOS-Anwendung, die mit
TP geschrieben ist aus einer Delphi-Anwendung aufrufen. Die Anwendung wird zwar aufgerufen, jedoch beendet sich das DOS-Programm sofort wieder.
Hier die Code-Zeilen, die die Anwendung ausführen:
Delphi-Quellcode:
procedure ExecuteProgramm(const PFileName: string);
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ExecuteFile: string;
begin
ExecuteFile := '"' + PFileName + '"';
FillChar(SEInfo, SizeOf(SEInfo), 0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo do
begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(ExecuteFile);
nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@SEInfo) then
begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or
Application.Terminated;
end else
begin
Application.MessageBox('Fehler beim Starten des Programms',
'Hinweis', MB_OK + MB_ICONERROR);
end;
end;
die procedure hab ich hier in der code-library gefunden.
Nun meine Frage: woran kann es liegen, dass die Anwendung sofort wieder beendet wird? liegts an der Art, wie sie aufgerufen wird oder an der Anwendung selbst?