系统被锁定时,Shutdown命令无效



(这里有一个非常类似的话题从未得到解决)

这是我的代码
for (int i = 0; i < 5; i++)
{
    Thread.Sleep(10000);
    Console.WriteLine("Hi");
    Process.Start("shutdown", "/s /t 0");
}

如果我锁定了我的系统,关机过程不工作,否则它工作正常。当我在2分钟后解锁系统时,它只显示hi(5次)。

我认为关机命令需要更高的权限,所以无论您是自己调用它还是使用API,我都希望需要一个UAC提示。你没有指定你使用的是哪个版本的Windows,但我认为假设UAC存在是安全的。

当系统被锁定时,无法显示UAC提示,并在一段时间后超时。因此,没有交互式用户的明确许可,您的关机不能进行。

我认为,为了实现你的目标,你需要创建一个具有高权限运行的windows服务,并让它调用正确的API来关闭机器。然后你可以有一个正常的进程与你的服务通信,并告诉它做关闭。

我希望别人能给你一个更简单的解决办法。

您是否尝试了shutdown.exe的其他参数,如/p和/或/f ?

最新更新