【问题标题】:Computer Status (Sleep, Hibernate, Locked, etc) Windows 10计算机状态(睡眠、休眠、锁定等)Windows 10
【发布时间】: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,感谢您提供的信息。所以我需要在事件改变状态时检查它吗?非常感谢

标签: c# .net


【解决方案1】:

根据this link,您可以使用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;
        }
    }

【讨论】:

    猜你喜欢
    • 2012-05-29
    • 2023-03-20
    • 1970-01-01
    • 2020-09-02
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多