Windows API Code Packによるアプリ開発 第4回 ~電源の状況の把握~

Windows API Code Packによるアプリ開発 [TechED2010 ポストセッション ]第4回 電源の状況の把握

前回(第3回)の「アプリケーションの再起動と修復 その2」を今日の午前中に公開したら、なぜか途中で保存した昨日の夜の時間で公開されてしまい、MSDNブログのトップページに表示されていません。
興味のある方は、下記URLをクリックしてください。
https://blogs.msdn.com/b/ttanaka/archive/2010/10/05/windows-api-code-pack-2-2.aspx
MSDNブログのトップページに表示されるかどうかで、大きくページビューが違うものですね。
渾身の作(Wordにコピペしたら6ページ分)で、かつ途中でブログエディターに何度か泣かされた記事なので、ページビューが少ないとちょっとさみしいです。
そこで予定を変更し、明日書こうと思っていた第4回を急遽書いています。

それでは、本題のWindows API Code Packの電源管理の機能を説明します。
Windows API Code Packでできることは、以下のことです。

電源の供給元を判別する
- AC電源につながっている状態か、バッテリーを使用している状態かを知ることができます。

バッテリーの残りを調べる
- バッテリーの残量を、パーセントで検知します。

AC電源を使用しているか、バッテリーをしているかについては、状態が変化した時にイベントが発生しますので、イベント発生時に処理を行うこともできます。

電源の供給元を調べて、供給元により処理を変えるには、以下のように実装します。

if (PowerManager.PowerSource == PowerSource.Battery)

{

  // バッテリーで稼働している場合の処理をここに実装

}

上記のコードのPowerManagerを使用するには、以下のことが必要です。
ア. Visual Studioの[プロジェクト]-[参照の追加]を使用し、Code PackのDLLであるMicrosoft.WindowsAPICodePack.dllへの参照を追加する。
イ. using Microsoft.WindowsAPICodePack.ApplicationServices; を追加する。
これらの手順や、Visual Basicのコードについては、前回のブログで説明していますので、ご参照ください。

バッテリーの残りを調べて、残量に応じて処理を変えるには、以下のように実装します。

if (PowerManager.BatteryLifePercent < 20)

{

  // バッテリー残量が 20% 未満の場合の処理をここに実装

}

.NET FrameworkのWindowsフォームには、同じような電源の状況を検知する機能が含まれています。
Windowsフォームの場合は、そちらの機能の使用もご検討ください。

次回からは、Windows 7タスクバーについての説明を行います。

[参考資料]
TechEDでのビデオとスライド
https://msdn.microsoft.com/ja-jp/events/ff973814.aspx
内容を早く知りたい方や、デモを確認されたい方は、ビデオをご覧ください。

Windows API Code PackによるWindowsアプリ開発 [TechEDポストセッション]
第1回 :
Windows API Code Packとは第2回 : アプリケーションの再起動と修復 その1
第3回 : アプリケーションの再起動と修復 その2
第4回 : 電源の状態の把握
第5回以降 : Windows 7のタスクバー関連

マイクロソフト
田中達彦