有关调用windows API来实现电源管理
想实现在系统空闲(无用户操作和无任务进行时)一段时间后自动关闭显示器,启动屏保,系统待机关机的一个小程序,已做完了调用SystemParametersInfo中的SPI_...
想实现在系统空闲(无用户操作和无任务进行时)一段时间后自动关闭显示器,启动屏保,系统待机关机的一个小程序,已做完了调用SystemParametersInfo中的SPI_GETSCREENSAVERACTIVE实现屏保的控制,关闭显示器,待机关机的API一直没有找到,请问以上3项应该分别调用哪些API呢,谢谢
展开
1个回答
展开全部
1、设桌面背景的函数为SystemParametersInfo,用法为
SystemParametersInfo(SPI_ SETDESKWALLPAPER,0,FILEPATH,1);
2、电脑关机的API为
[DllImport("user32.dll")]
static extern bool ExitWindowsEx(ExitWindows uFlags, ShutdownReason dwReason);
其中ExitWindows和ShutdownReason分别为枚举类型,它们的定义分别为:
[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
}
3、显示器关闭的API在C#中不知怎么实现,也希望有知道的人可以分享
SystemParametersInfo(SPI_ SETDESKWALLPAPER,0,FILEPATH,1);
2、电脑关机的API为
[DllImport("user32.dll")]
static extern bool ExitWindowsEx(ExitWindows uFlags, ShutdownReason dwReason);
其中ExitWindows和ShutdownReason分别为枚举类型,它们的定义分别为:
[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
}
3、显示器关闭的API在C#中不知怎么实现,也希望有知道的人可以分享
追问
ExitWindowsEx是直接调用系统的电源管理dll吗,该怎么设置多长时间关机待机呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询