[小ネタ]電源プラン [省電力] と [高パフォーマンス] を一発で切り替える


ノートPCでカンファレンスに行くと

ああ!もう電池が切れる!!
省電力プランに切り替えないと…えーとタスクバーの通知エリアの電源アイコンを右クリックして電源オプションを開いて省電力、っと、あとはスライダーで輝度を調整してっと…
…って長いわ!!!!

一発で切り替わったらいいのになあ…

作りました

省電力・高パフォーマンス切り替え

まずは省電力に変更するバッチファイル

PowerMin.bat
powercfg.exe -setactive SCHEME_MAX

次に、高パフォーマンスに変更するバッチファイル

PowerMax.bat
powercfg.exe -setactive SCHEME_MIN

注意して欲しいのは、省電力は [SCHEME_MAX] で、高パフォーマンスが [SCHEME_MIN] なところ。
心情的には逆な感じしますが、

  • 最大限電力を消費しない=省電力
  • 最小限の省電力しかしない=高パフォーマンス

ということです。

輝度変更

輝度変更は少々めんどくさいです。
輝度を変更する電力プランの GUID を取得しなければいけません。
GUID を調べるのは

powercfg list

と打ちます。
すると、こんな風にリストが表示されるので目的の GUID をコピーしておきます。

C:\Windows\system32>powercfg list

既存の電源設定 (* アクティブ)
-----------------------------------
電源設定の GUID: 11111111-2222-3333-4444-555555555555  (バランス)
電源設定の GUID: 66666666-7777-8888-9999-aaaaaaaaaaaa  (高パフォーマンス)
電源設定の GUID: bbbbbbbb-cccc-dddd-eeee-ffffffffffff  (省電力) *
電源設定の GUID: 00000000-1111-2222-3333-444444444444  (ECO)

※GUID は架空のもの

この GUID を使って次のようなバッチファイルを作ります。

Brightness.bat
@echo off

rem ↓ここを設定
set GUID=bbbbbbbb-cccc-dddd-eeee-ffffffffffff

set POWER=7516b95f-f776-4464-8c53-06167f40cc99
set BRIGHT=aded5e82-b909-4619-9949-f5d71dac0bcb

powercfg -setdcvalueindex %GUID% %POWER% %BRIGHT% %1
powercfg -setactive %GUID%

これに引数で 1~100 を指定します。
たとえば、次の例では輝度が半分になります。

C:\Windows\system32>Brightness 50

で、これらをランチャに設定したりタスクバーにピン止めしておくと超便利になるわけです。

ていうか

新しい電源プランを作って、

  • 電源ケーブル切断時:省電力プランと同じ設定
  • 電源ケーブル接続時:高パフォーマンスプランと同じ設定

にすればいいんですけどね…

まとめ

Bash が来ようという時代に、バッチファイルの記事を書いた(2回目)。