我写了一个MFC应用程序(可执行),执行一些任务,并通过Windows 7注册表中的"Runonce"启动。
我的问题是,windows,特别是windows资源管理器不启动,直到我退出该exe。我如何使我的EXE异步运行,以便它可以执行任务,但Windows将继续引导?我是不是漏掉了什么基本的东西?
谢谢:)
如果你把你的应用放到
微软HKEY_LOCAL_MACHINE Software Windows CurrentVersion RunOnce
http://support.microsoft.com/kb/179365/en-us
HKEY_LOCAL_MACHINE…RunOnce键以未定义的顺序同步加载。
因为HKEY_LOCAL_MACHINE…一旦键同步加载,它的所有条目必须在HKEY_LOCAL_MACHINE…运行,HKEY_CURRENT_USER …运行,HKEY_CURRENT_USER …RunOnce和Startup Folder条目可以被加载。
适合这种情况的解决方案可能会在HKLM中添加这样的注册表值…RunOnce
cmd /c "start "myAppTitle" "path to myMegaApp.exe" "params""
它可以成功地用于绕过UAC提示(确保您以admin的身份编写注册表项,并在重启后以admin组的用户登录)。
另一种方式
- 把你的app放到HKCU…RunOnce(条目异步加载)(如果您不需要您的应用程序的管理权限)
- 使用Task Scheduler API,它提供了很多有趣的东西