c# - 计算机状态(睡眠、休眠、锁定等)Windows 10
问题描述
我需要检查计算机的当前状态 。休眠、睡眠、onStand-by 锁定等
我只想问如何使用 C# 获取计算机的当前状态?我已经通过检测 LockApp 进程锁定了计算机,但我无法获得它是否处于睡眠模式或休眠状态。
我想尝试一个将使用任务计划程序运行的项目并检查计算机的当前状态并将显示在控制台上。
请注意,我是在我的项目运行时检测计算机的状态。谢谢你。对不起我的英语不好。:)
//Will return true if the Computer is Locked
public bool Lock()
{
Boolean locked = false;
Process[] LockApp = Process.GetProcesses();
foreach (Process theprocess in LockApp)
{
if (theprocess.ProcessName == "LockApp")
{
locked = true;
Console.WriteLine("LockApp: " + locked.ToString());
}
}
return locked;
}
//Will return true if still on Startuptime (+5min)
public bool onStartupTime()
{
bool oST = false;
DateTime ST = DateTime.Now.AddMilliseconds(-
Environment.TickCount);
DateTime Less = DateTime.Now.AddMinutes(-5);
DateTime Now = DateTime.Now;
Console.WriteLine(ST.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine(Less.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine(Now.ToString("yyyy-MM-dd HH:mm:ss"));
if (ST >= Less)
{
oST = true;
}
return oST;
}
OnStartup(-5mins): true or false Lock: true or false sleep: true or false hibernate: true or false
解决方案
根据此链接,您可以使用SystemEvents.PowerModeChanged
. 那里还发布了一个使用示例:
SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(OnPowerModeChanged);
private static void OnPowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
switch (e.Mode)
{
case PowerModes.Resume:
MessageBox.Show("PowerMode: OS is resuming from suspended state");
break;
case PowerModes.Suspend:
MessageBox.Show("PowerMode: OS is about to be suspended");
break;
}
}
推荐阅读
- node.js - 使用(反应)node.js 的 Azure 管道和使用并发脚本的表达项目
- angular - 使用事件发射器测试可点击的 Angular 指令 - @Output() 不会引发/触发
- node.js - Discord.js 欢迎信息不显示头像
- angular - 如何将角度绑定@input与html元素值绑定
- html - 我不想更改 Bootstrap 汉堡包默认图标
- c# - EF Core 添加实体而不将其持久保存在数据库中
- arduino - 将 ESP8266 (NodeMCU) 与 Android 应用程序(MIT APP 发明者)连接,尤其是来自 gps 模块的经度和纬度
- python-3.x - 在 Odoo 中上传期间如何获取文件的本地绝对路径?
- image - QNormalDiffuseMapMaterial 和 qt 中使用的法线图像是什么时候
- python - 通过将整数添加到数据框中的日期时间来创建新列