3
我想让Windows 7机器从C#WPF应用程序重新启动。在这个意义上我已经添加以下代码(我用了一个枚举,但要保持代码的短,我只是将这里的常量):ExitWindowsEx Windows 7关机不起作用
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool ExitWindowsEx(ExitWindows uFlags, ShutdownReason dwReason);
public static void Reboot() {
ExitWindowsEx(0x02, 0x0)
}
在Windows 7机器上这绝对不做任何事(我无论如何)。将0x2(重新启动)更改为0x0(注销)确实使代码注销当前用户,但重新启动代码似乎不起作用。
使用GetLastError API调用也没有太大作用。它只是说了一些有关该功能已成功完成的内容。
现在我只是通过调用shutdown命令来应对/ r/f,但我更喜欢能够从我的应用程序直接调用Windows API,所以任何帮助将不胜感激。
当我回到办公室时,我会看看这个。我在自己的帐户信息下运行该代码,但这是一个域管理员。另外,我现在重写了Reboot()函数,以使用/ r标志调用外部shutdown.exe,它可以工作(对于同一个用户)。特权问题对我来说似乎很奇怪。 – Robba