0

参考这个问题:.net - Reboot machine from a C#/WPF App

我正在尝试创建 ac#/.net 应用程序,即使会话被锁定(即用户已登录,此应用程序正在运行,但会话被锁定),它也可以重新启动机器。

我从问题中尝试了这个:System.Diagnostics.Process.Start("shutdown.exe", "-r -t 0");

但显然只有在会话解锁时才有效。此外,在阅读此内容后:MSDN - InitiateSystemShutdown Function似乎该InitiateSystemShutdown功能将显示系统关闭对话框,这似乎不适合我的目的。

有没有其他方法可以做到这一点?

4

1 回答 1

1

ExitWindowsEx功能完成了我想做的事情。

使用:

    [DllImport("user32.dll", SetLastError = true)]
    public static extern int ExitWindowsEx(ExitWindows uFlags, ShutdownReason dwReason);

调整令牌权限后,并使用 uFlags 0x06(重启/强制)。我也使用了 dwReason 0。无论会话是否锁定,此功能都会重新启动机器。

这里

于 2015-02-17T17:57:43.083 回答