从我的应用程序中,我需要创建一个独立于主应用程序的独立进程。这意味着,如果用户关闭主应用程序,则新进程仍处于活动状态。我不需要等待新进程的输出,那么我可以创建新进程而无需等待响应。
目的是创建一个单独的管道以完成长时间的操作,而无需等待结束,并且在主应用程序终止时也不会终止。
基本上,此代码可见。
uses ShellApi;
begin
ShellExecute(0, 'open', PChar('MyConsole.EXE'), PChar('MyParam'), '', SW_HIDE);
end;
但是,我对此感到怀疑,该进程是从主应用程序加载的DLL中产生的,而ShellExecute
需要一个HWND
,是否适合于使用{{1 }}?
谢谢,抱歉英语不好!
答案 0 :(得分:-2)
我想分享用 if (sun.awt.AppContext.getAppContext() == null) {
sun.awt.SunToolkit.createNewAppContext();
}
做出的解决方案(感谢@DavidHeffernan)。
CreateProcess
不适合生成新进程,因为该进程是从主应用程序加载的DLL中生成的,并且ShellExecute
需要ShellExecute
。
HWND