C# 实现注销、关机、重启电脑功能
using System.Runtime.InteropServices; [Flags]
public enum ExitWindows : uint
{
LogOff = 0x00, //注销
ShutDown = 0x01, //关机
Reboot = 0x02, //重启
Force = 0x04, PowerOff = 0x08,
ForceIfHung = 0x10
}
[Flags]
public enum ShutdownReason : uint
{
MajorApplication = 0x00040000, MajorHardware = 0x00010000, MajorLegacyApi = 0x00070000, MajorOperatingSystem = 0x00020000, MajorOther = 0x00000000,
MajorPower = 0x00060000,
MajorSoftware = 0x00030000, MajorSystem = 0x00050000, MinorBlueScreen = 0x0000000F, MinorCordUnplugged = 0x0000000b, MinorDisk = 0x00000007,
MinorEnvironment = 0x0000000c, MinorHardwareDriver = 0x0000000d, MinorHotfix = 0x00000011, MinorHung = 0x00000005,
MinorInstallation = 0x00000002, MinorMaintenance = 0x00000001, MinorMMC = 0x00000019,
MinorNetworkConnectivity = 0x00000014,
MinorNetworkCard = 0x00000009, MinorOther = 0x00000000,
MinorOtherDriver = 0x0000000e, MinorPowerSupply = 0x0000000a, MinorProcessor = 0x00000008, MinorReconfig = 0x00000004, MinorSecurity = 0x00000013, MinorSecurityFix = 0x00000012, MinorSecurityFixUninstall = 0x00000018,
MinorServicePack = 0x00000010,
MinorServicePackUninstall = 0x00000016, MinorTermSrv = 0x00000020,
MinorUnstable = 0x00000006,
MinorUpgrade = 0x00000003,
MinorWMI = 0x00000015,
FlagUserDefined = 0x40000000,
FlagPlanned = 0x80000000
}
[DllImport("user32.dll")]
static extern bool ExitWindowsEx(ExitWindows uFlags, ShutdownReason dwReason);
[STAThread]
static void Main(string[] args)
{
ExitWindowsEx(ExitWindows.LogOff, ShutdownReason.MajorOther & ShutdownReason.MinorOther);
//这个语句将实现计算机注销操作
}