我编写了一个执行某些任务的MFC应用程序(可执行文件),它是通过Windows 7注册表中的“Runonce”启动的。
我的问题是Windows,或者特别是Windows资源管理器在我退出该exe之前无法启动。如何让我的EXE异步运行,以便它可以执行任务,但Windows将继续启动?我在这里缺少一些基本的东西吗?
谢谢:)
答案 0 :(得分:3)
如果您将应用程序放入
,这可能是个问题HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的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 promt(确保以管理员身份编写注册表项,并在重新启动后以admin组用户身份登录)。
另一种方式