使用RunOnce延迟启动

Di *_*Zou 0 windows registry windows-services runonce

我有一个程序,我想在Windows启动时启动.所以我将程序写入注册表值SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce.Windows启动时程序立即运行.

但是,它会在任何其他进程启动之前运行该程序.我希望在我的桌面启动并且所有其他系统进程都已启动后启动我的程序.我该怎么做?

编辑:所以我在程序中添加了延迟.在我的程序运行之后,无论我在程序中发生什么样的延迟,都不会像桌面这样的进程启动.

Luk*_*uke 5

根据微软的说法:

除HKEY_LOCAL_MACHINE ...\RunOnce键外,所有键及其条目都是异步加载的.因此,RunServices和RunServicesOnce键中的所有条目都可能同时运行.

HKEY_LOCAL_MACHINE ...\RunOnce项中的条目以未定义的顺序同步加载.

因为HKEY_LOCAL_MACHINE ...\RunOnce键是同步加载的,所以它的所有条目必须在HKEY_LOCAL_MACHINE ...\Run,HKEY_CURRENT_USER ...\Run,HKEY_CURRENT_USER ...\RunOnce和Startup Folder条目加载之前完成加载.

那么这是否意味着如果你在RunOnce键中放入一个Sleep(INFINITE)程序,它会阻止你的机器启动?有趣.

只需使用该文章中提到的其他密钥之一.或者,如果您需要RunOnce的语义,请使用在启动实际程序后退出的帮助程序.