如何防止“结束进程树”终止我已启动的程序?

时间:2012-05-15 16:28:26

标签: delphi delphi-xe2

我正在尝试使用ShellExecute从Delphi XE2中的另一个应用程序“one.exe”执行EXE'two.exe'。

ShellExecute(0, 'open', 'two.exe', nil, nil, SW_NORMAL);

它运行正常,但每当我从任务管理器的进程选项卡终止应用程序'one.exe'(父应用程序)时,使用“结束进程树”选项,应用程序'two.exe'也会被终止。

如何阻止我的ShellExecuted应用程序像这样终止?

2 个答案:

答案 0 :(得分:11)

好的,不是很好的解决方案......但是测试成功了; o)

ShellExecute(0, 'open', 'cmd', 
  PChar('/C  start "" "' + Application.ExeName + '"'), nil, SW_HIDE);

enter image description here

第一个是手动启动......他的孩子经常接到电话...... 最后一个,带有shellexecute + cmd技巧......

/C explanation

答案 1 :(得分:8)

我认为您需要创建一个中间过程,然后生成two.exe。然后,您需要立即终止中间过程,此时原始过程与two.exe之间的关系将被破坏。