我正在尝试使用 ShellExecute 从 Delphi XE2 中的另一个应用程序“one.exe”执行 EXE“two.exe”。
ShellExecute(0, 'open', 'two.exe', nil, nil, SW_NORMAL);
它工作得很好,但是每当我从任务管理器的进程选项卡中终止应用程序“one.exe”(父应用程序)时,使用“结束进程树”选项,应用程序“two.exe”也会被终止。
如何防止我的 ShellExecuted 应用程序像这样被终止?
我正在尝试使用 ShellExecute 从 Delphi XE2 中的另一个应用程序“one.exe”执行 EXE“two.exe”。
ShellExecute(0, 'open', 'two.exe', nil, nil, SW_NORMAL);
它工作得很好,但是每当我从任务管理器的进程选项卡中终止应用程序“one.exe”(父应用程序)时,使用“结束进程树”选项,应用程序“two.exe”也会被终止。
如何防止我的 ShellExecuted 应用程序像这样被终止?
好的,不是很好的解决方案......但测试成功;o)
ShellExecute(0, 'open', 'cmd',
PChar('/C start "" "' + Application.ExeName + '"'), nil, SW_HIDE);
第一个是手动启动...他的孩子定期调用 shellexecute... 最后一个,使用 shellexecute + cmd 技巧...
我认为您需要创建一个中间过程,然后生成two.exe
. 然后您需要立即终止中间进程,此时与原始进程之间的关系two.exe
被打破。