Windows 7中的断电事件… C#问题

前端之家收集整理的这篇文章主要介绍了Windows 7中的断电事件… C#问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Windows – CPU power management APIs                                    3个
我正在开发一个C#WPF应用程序,该应用程序将安装在连接了APC 1500 UPS的Windows 7机器上.在断电时,我需要应用程序在Windows 7关闭之前响应某些关闭活动.

我可以直接处理Windows事件,还是需要与APC软件进行交互?如果是Windows,会发生什么事?任何链接或信息将不胜感激 – 我只是在搜索时没有看到太多.

谢谢.

解决方法

也许这有用吗?

private ManagementEventWatcher managementEventWatcher;
    private readonly Dictionary<string,string> powerValues = new Dictionary<string,string>
                         {
                             {"4","Entering Suspend"},{"7","Resume from Suspend"},{"10","Power Status Change"},{"11","OEM Event"},{"18","Resume Automatic"}
                         };
    public void InitPowerEvents()
    {
        var q = new WqlEventQuery();
        var scope = new ManagementScope("root\\CIMV2");

        q.EventClassName = "Win32_PowerManagementEvent";
        managementEventWatcher = new ManagementEventWatcher(scope,q);
        managementEventWatcher.EventArrived += PowerEventArrive;
        managementEventWatcher.Start();
    }
    private void PowerEventArrive(object sender,EventArrivedEventArgs e)
    {
        foreach (PropertyData pd in e.NewEvent.Properties)
        {
            if (pd == null || pd.Value == null) continue;
            var name = powerValues.ContainsKey(pd.Value.ToString())
                           ? powerValues[pd.Value.ToString()]
                           : pd.Value.ToString();
            Console.WriteLine("PowerEvent:"+name);
        }
    }
    public void Stop()
    {
        managementEventWatcher.Stop();
    }

猜你在找的Windows相关文章