Delphi:如何创建独立于主应用程序的独立流程?

时间:2018-07-19 13:06:33

标签: delphi

从我的应用程序中,我需要创建一个独立于主应用程序的独立进程。这意味着,如果用户关闭主应用程序,则新进程仍处于活动状态。我不需要等待新进程的输出,那么我可以创建新进程而无需等待响应。

enter image description here

目的是创建一个单独的管道以完成长时间的操作,而无需等待结束,并且在主应用程序终止时也不会终止。

基本上,此代码可见。

uses ShellApi;

begin
  ShellExecute(0, 'open', PChar('MyConsole.EXE'), PChar('MyParam'), '', SW_HIDE);
end;

但是,我对此感到怀疑,该进程是从主应用程序加载的DLL中产生的,而ShellExecute需要一个HWND,是否适合于使用{{1 }}?

谢谢,抱歉英语不好!

1 个答案:

答案 0 :(得分:-2)

我想分享用 if (sun.awt.AppContext.getAppContext() == null) { sun.awt.SunToolkit.createNewAppContext(); } 做出的解决方案(感谢@DavidHeffernan)。

CreateProcess不适合生成新进程,因为该进程是从主应用程序加载的DLL中生成的,并且ShellExecute需要ShellExecute

HWND