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