[C#] Windows API Code Pack を使用して、電源の状態を検知す

Windows API Code Pack を使用すると、電源の供給元やバッテリーの残量などの電源の状態を検知する機能を実装できます。この、電源の状態を把握するためのサンプル コードです。

 
 
 
 
 
(0)
Add to favorites
2/8/2011
E-mail Twitter del.icio.us Digg Facebook
Sign in to ask a question


  • PowerManager.IsUpsPresent について
    2 Posts | Last post October 25, 2012
    • 市販のUPSを購入し、USB接続をしていますが、
      PowerManager.IsUpsPresentがfalseになり、
      PowerManager.PowerSourceがUPSになりません。
      
      何か前準備があるのですか?
      もしくは認識できるUPSに制限はありますか?
      
      環境
      OS Windows 7 Ultimate 64bit (デスクトップパソコン)
      UPS装置 CyberPower BACKUP CR CP1200SW JP(ラインインタラクティブ方式)
      コンパイラ Visual Studio 2010 Express Edition
      .Net Framework 3.5
    • OS の電源管理に準拠していればステータスを取得できるはずなので、UPS の開発元に問い合わせていただくのがよいと思います。
      
      なお、使用されている UPS の仕様書 (以下の PDF の 7 ページ) には「Windows Vistaで提供されている電源管理と互換性があります」ので準拠しているようにも見えますが、完全準拠でないのかもしれません。
      
      『USBポートとシリアル(DB-9)ポート』
      
      コンピュータとUSP上のUSBまたはシリアル(DB-9)ポート間の接続、
      通信を行います。UPSはステータスをPowerPanelパーソナル版ソフトウェア
      に送信します。シリアル(DB-9)インターフェイスはWindows NT/2000/2003/XPで
      提供されている電源管理と互換性があり、USBインターフェースはWindows Vista、Mac OSおよび
      Linuxで提供されている電源管理と互換性があります。
      注意 1:
      一度に使用できる通信ポートはUSBポートまたはシリアル(DB-9)ポートの 1 つだけです。
      
      (株式会社サイバーパワー・ジャパン、「無停電電源装置 BACKUP CR Series 型番: CP1200SW JP 仕様書」、Ver. 1、http://www.cyberpower.jp/support/download/datasheet/BACKUP_CR1200_datasheet.pdf、7ページ引用)