【发布时间】:2019-02-18 15:33:23
【问题描述】:
我需要检查计算机的当前状态 。休眠、睡眠、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 锁:真或假 睡眠:真或假 休眠:真或假
【问题讨论】:
-
当计算机处于休眠、睡眠或待机状态时,没有进程正在运行。所以你不能报告这些(但你可能能够检测到进入或退出这些状态)
-
@HansKesting,感谢您提供的信息。所以我需要在事件改变状态时检查它吗?非常感谢