Windows 7 電源管理

作者: Gnie  來源: 博客園  發布時間: 2011-02-10 16:32  閱讀: 1527 次  推薦: 0   原文鏈接   [收藏]  

     上一篇介紹了如何在Windows 7 中進行網絡資源管理。除此之外Windows API Code Pack 還提供了電源管理方面的功能,本篇將繼續通過簡單實例演示如何在Windows 7 中進行電源管理。

     首先為XAML 代碼部分添加TabControl 及TabItem,用于顯示電源狀態信息。

<Grid>
    <TabControl x:Name="tabControl">
        <TabItem x:Name="tabItem" Header="Power Management Info">
        </TabItem>
    </TabControl>
</Grid>

     在上一講實例中的AddProperty() 方法可以繼續用來添加相關屬性信息。創建LoadPowerMgmt() 方法,通過PowerManager 類獲取電源相關狀態數據。

private void LoadPowerMgmt()
{
    StackPanel stackPanel = new StackPanel();
    stackPanel.Orientation = Orientation.Vertical;

    AddProperty("Power Personality: ", PowerManager.PowerPersonality.ToString(), stackPanel);
    AddProperty("Power Source: ", PowerManager.PowerSource.ToString(), stackPanel);
    AddProperty("Is Battery Persent: ", PowerManager.IsBatteryPresent.ToString(), stackPanel);
    AddProperty("Is UPS Present: ", PowerManager.IsUpsPresent.ToString(), stackPanel);
    AddProperty("Is Battery Short Term: ", PowerManager.IsBatteryShortTerm.ToString(), stackPanel);
    AddProperty("Battery Life (%) : ", PowerManager.BatteryLifePercent.ToString(), stackPanel);
    AddProperty("Is Monitor Required: ", PowerManager.MonitorRequired.ToString(), stackPanel);
    AddProperty("Is Monitor On: ", PowerManager.IsMonitorOn.ToString(), stackPanel);
   
    tabItem.Content = stackPanel;
}

     在MainWindow() 中調用LoadPowerMgmt() 方法,使程序運行時自動加載。這樣我們就可以在Tab 標簽中看到LoadPowerMgmt() 方法獲取的電源詳細信息。

public MainWindow()
{
    InitializeComponent();
    LoadPowerMgmt();
}

     除了獲取以上靜態數據外,還可為程序添加動態電源事件。如下代碼所示,在Window_Loaded 中添加BatteryLifePercentChanged 事件,當電池電量發生變化時將觸發相關事件。

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    PowerManager.BatteryLifePercentChanged += new EventHandler(BatteryLifePercentChanged);        
}  

     在BatteryLifePercentChanged 中增加事件內容,當電池電量發生變化時:修改ProgressBar 進度條和Label 標簽數值。其他電源事件可參考:PowerSourceChanged,SystemBusyChanged,PowerPersonalityChanged,IsMonitorOnChanged。

private void BatteryLifePercentChanged(object sender, EventArgs e)
{
    powerBar.Value = PowerManager.BatteryLifePercent;
    powerVal.Content = string.Format("{0}%", PowerManager.BatteryLifePercent.ToString());
}

  運行程序:

Power

  源碼下載:PowerMgmt.zip

0
0
 
標簽:Windows 7
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()