使用按钮单击事件创建一个表单(我使用的是 .NET 2.0):
{
Thread.Sleep(3000);
ExitWindowsEx(0,0); // shutdown
}
点击按钮,按Left-WindowsKey+L锁定桌面。关机失败。
ExitWindowsEx 返回 1(成功)。
为什么这个 API 会失败,当桌面被锁定时还有什么可能会失败?
API 失败是因为您在不同的桌面上,因此不再是交互式用户。来自MSDN:
因此,如果您不是交互式用户,则该功能无需实际关闭计算机即可成功。如果您不是交互式用户,请使用 InitiateSystemShutdown 或 InitiateSystemShutdownEx 函数。
使用http://msdn.microsoft.com/en-us/library/aa376873(VS.85).aspx。(启动系统关机)。ExitWindowsEx 是“交互式”注销。