我有一个程序,点击按钮后,我想要显示一条消息,告诉用户计算机正在重启(使用ok / cancel选项),然后计算机将重启。然而,踢球者,我希望它重新启动到安全模式。然后,当用户登录到安全模式时,它将在启动时自动启动程序。
现在我意识到这可以通过以编程方式使用/ safemode编辑boot.ini来实现,一旦计算机登录就启动程序,然后告诉计算机重启。但是,假设最终用户对Windows不够了解手动反转这些设置。
我想要的是,在最终用户完成Windows安全模式下的程序后,他们只需重新启动计算机并继续使用Windows,而无需手动将任何设置更改为启动到安全模式之前的设置。
注意*将以安全模式运行的程序已经过测试,可以在安全模式下运行。我只需要知道如何让最终用户进入安全模式并自动运行程序,最终用户不知道如何撤消这些设置。
有人能建议一种方法来执行所有这些疯狂吗? C#或vb.net中的一个例子很棒!
提前谢谢!
本
答案 0 :(得分:7)
您可以调用运行此命令的进程
bcdedit /set {current} safeboot Minimal
然后使您的应用程序成为Windows服务,并将具有服务名称的注册表项添加到
HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \控制\了SafeBoot \最小\你的 服务名称
答案 1 :(得分:2)
您可以通过在注册表中添加值HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
来重置safeboot参数
并且一旦用户重新启动到安全模式,它就会运行
我不确定这个部分,但我在批处理文件中使用它来重置bcdedit值,因此它可能会或可能不适用于您的程序。
/v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"`
原始蝙蝠命令:
bcdedit /set {current} safeboot network
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 07