c – 如何重启Windows 8/10并使用WinAPI转到高级启动选项?

我知道可以使用
InitiateShutdown API重启工作站.我很好奇如何重新启动并转到Windows 8/10上提供的“高级启动”选项窗口? (我问的是WinAPI或注册表设置.)

《c – 如何重启Windows 8/10并使用WinAPI转到高级启动选项?》

PS.通过调用可以实现同样的目的:

shutdown \r \o

最佳答案 对于Windows 8及更高版本,您可以使用未记录的dwShutdownFlags值0x400来启动重新启动,然后显示高级启动菜单选项.该标志可以与SHUTDOWN_RESTART,SHUTDOWN_RESTARTAPPS,SHUTDOWN_FORCE_OTHERS,SHUTDOWN_FORCE_SELF组合使用.

因此:

DWORD dwResult = InitiateShutdown(NULL, NULL, 
    30,                                            //Use 30-second timeout 
    SHUTDOWN_RESTART | 0x400,                      //Reboot with advanced menu options
    SHTDN_REASON_FLAG_PLANNED | 
    SHTDN_REASON_MAJOR_APPLICATION |
    SHTDN_REASON_MINOR_OTHER);

请注意,虽然此标志未记录,因此使用它需要您自担风险!

点赞