我需要检查计算机的当前状态。冬眠,睡眠,上锁,等等
我只想问一下如何使用C#获取我的计算机的当前状态?我已经通过检测LockApp进程锁定了计算机,但如果它处于睡眠模式或hibernate,则无法获取。
我希望尝试使用任务调度程序运行的项目,并检查计算机当前状态并显示在控制台上。
请注意,当我的项目运行时,我要检测计算机的状态。谢谢。为我糟糕的英语感到抱歉。:)
//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(-5分钟):真或假锁:真或假睡眠:真或假冬眠:真或假
发布于 2019-02-18 07:31:23
根据此链接,您可以使用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;
}
}https://stackoverflow.com/questions/54742257
复制相似问题