【发布时间】:2012-09-11 18:23:15
【问题描述】:
我有一个需要能够自我更新的程序。我有第二个程序将执行更新、下载和安装。更新程序显然需要能够更新主程序,为此,主程序无法运行。所以我想让主程序通过调用ShellExecuteEx 来启动更新程序,但是the MSDN documentation 让我有点困惑。
上面写着:
如果 ... 进程将 ShellExecuteEx 返回后很快终止。在这样的条件下, 调用线程将无法完成 DDE 对话,所以 ShellExecuteEx 完成 在将控制权返回给调用应用程序之前进行对话。 未能完成对话可能会导致失败 启动文档。
在SEE_MASK_NOASYNC 下,它表示ShellExecuteEx 调用在操作完成之前不会返回。我想要的是启动更新程序,然后立即终止主程序,这样更新程序就可以毫无问题地运行。这是正确的方法吗?为了防止启动的更新程序被标记为在主进程关闭时将被杀死的“子进程”,我需要做些什么特别的事情吗?
【问题讨论】:
标签: windows winapi language-agnostic