我编写了一个执行某些任务的 MFC 应用程序(可执行文件),它通过 Windows 7 注册表中的“Runonce”启动。
我的问题是,在我退出该 exe 之前,Windows 或特别是 Windows 资源管理器无法启动。如何使我的 EXE 异步运行,以便它可以执行任务,但 Windows 将继续启动?我在这里缺少一些基本的东西吗?
谢谢 :)
如果您将应用程序放入
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
正如它在http://support.microsoft.com/kb/179365/en-us上所说
HKEY_LOCAL_MACHINE\...\RunOnce 键中的条目以未定义的顺序同步加载。
因为 HKEY_LOCAL_MACHINE\...\RunOnce 键是同步加载的,所以它的所有条目必须在 HKEY_LOCAL_MACHINE\...\Run、HKEY_CURRENT_USER\...\Run、HKEY_CURRENT_USER\...\RunOnce 和启动文件夹之前完成加载可以加载条目。
适合这种情况的解决方法可能是在 HKLM\...\RunOnce 中添加类似这样的注册表值
cmd /c "start "myAppTitle" "path to myMegaApp.exe" "params""
它可以成功地用于绕过 UAC 提示(确保您将注册表项写入为 admin 并在重新启动后以 admin 组的用户身份登录)。
另一种方式