我有一个需要能够自我更新的程序。我有第二个程序将执行更新、下载和安装。更新程序显然需要能够更新主程序,为此,主程序无法运行。所以我想让主程序通过调用来启动更新程序ShellExecuteEx
,但是MSDN 文档让我有点困惑。
它说:
如果 ... 进程将在 ShellExecuteEx 返回后很快终止,则必须指定 SEE_MASK_NOASYNC 标志。在这种情况下,调用线程将无法完成 DDE 对话,因此 ShellExecuteEx 在将控制权返回给调用应用程序之前完成对话非常重要。未能完成对话可能会导致文档启动失败。
在 下SEE_MASK_NOASYNC
,它表示ShellExecuteEx
在操作完成之前调用不会返回。我想要的是启动更新程序,然后立即终止主程序,这样更新程序就可以毫无问题地运行。这是正确的方法吗?为了防止启动的更新程序被标记为在主进程关闭时将被杀死的“子进程”,我需要做些什么特别的事情吗?