Windows启动时的第二次自动运行

时间:2015-03-25 12:02:16

标签: c++ windows winapi

我的程序需要2次系统重启才能完成其工作。 我想使用HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ RunOnce注册表项来自动运行我的程序。 操作顺序:

  • 将自己写入RunOnce密钥
  • 重新启动
  • 自动运行并做一些事情。
  • 将自己写入RunOnce密钥
  • 重新启动
  • 完成工作

但是MSDN article说:"从任何这些键运行的程序在执行过程中都不应该写入密钥"。

如何在第二次重启后自动启动程序?

首次重启后:如果禁止写入RunOnce,我的程序如何让系统在重启后自动运行它,因为程序已经从RunOnce运行了?

2 个答案:

答案 0 :(得分:2)

最简单的解决方案是将自动运行指向批处理文件。您可以在重新启动之间随意更改批处理文件。

更好的解决方案当然是消除这两次重启中的至少一次。即使您正在安装新的文件系统驱动程序,也只需重启一次即可。

答案 1 :(得分:-1)

退出应用程序A时,您可以启动新的应用程序B,将原始应用程序A添加到RunOnce。应用程序B甚至可以与A相同,但使用命令行开关运行仅执行RunOnce注册并绕过正常的执行路径。