在网络环境中的Windows XP专业版中,Ctrl + Alt + Del为您提供Windows安全提示,如果按住Ctrl键并单击关机,则会触发紧急关机。
这似乎关闭系统的速度太快,甚至不能完成进程,即几乎就像拔出电源/长按电源按钮一样。
我想知道Windows实现如此快速关机的过程 - 它是否直接通过ACPI / APM指示BIOS关闭系统电源?如果是这样,如何以任何语言以编程方式实现?
答案 0 :(得分:1)
这可以通过使用系统请求功能在* nix系统上完成。通常,出于安全原因禁用此选项,但您可以使用root权限启用它,并立即请求关闭系统电源,如下所示:
echo 1 > /proc/sys/kernel/sysrq-trigger ;
echo o > /proc/sysrq-trigger
字母'o'表示“断电”。其他功能可用。 https://en.wikipedia.org/wiki/Magic_SysRq_key
答案 1 :(得分:1)
ExitWindowsEx
函数是标准关闭,即使使用EWX_FORCE
它仍会关闭所有程序,服务等......它只是不会询问 /等待它们关闭。
那么解决方案是什么? 使用NtShutdownSystem
。
该函数通过刷新缓存,注册表等然后调用BIOS关闭计算机来执行实际关闭。
在此查看用法示例:
http://www.codeproject.com/Articles/34194/Performing-emergency-shutdowns
答案 2 :(得分:0)
您可以在设置EWX_POWEROFF
和EWX_FORCE
标志的情况下使用ExitWindowsEx
...