AutoHotkey スレッド part6

このエントリーをはてなブックマークに追加
971名無しさん@お腹いっぱい。
小ネタ。電源状態の変化を検知してサブルーチンを呼ぶ。
以下に列挙した変数に該当したイベントの通知があった場合、同名サブルーチンラベルを呼ぶ。
レジュームから醒めて録画したいときとかにでも。

PBT_APMBATTERLOW := 0x9 ; バッテリ電力が低下した
PBT_APMOEMEVENT := 0xB ; OEM定義のイベントが発生した
PBT_APMPOWERSTATUSCHANGE := 0xA ; パワー状態が変化した
PBT_APMQUERYSUSPEND := 0x0 ; 待機要求をする
PBT_APMQUERYSUSPENDFAILED := 0x2 ; 待機要求が拒否された
PBT_APMRESUMEAUTOMATIC := 0x12 ; システムが自動的に復帰しようとしている
PBT_APMRESUMECRITICAL := 0x6 ; 致命的な待機状態からシステムが復帰しようとしている
PBT_APMRESUMESUSPEND := 0x7 ; 待機状態から復帰しようとしている
PBT_APMSUSPEND := 0x4 ; システムが待機状態になろうとしている
OnMessage(0x218, "WM_POWERBROADCAST")
return
WM_POWERBROADCAST(wParam, lParam, msg, hwnd) {
global
static names:="PBT_APMBATTERLOW,PBT_APMOEMEVENT,PBT_APMPOWERSTATUSCHANGE,PBT_APMQUERYSUSPEND,PBT_APMQUERYSUSPENDFAILED,PBT_APMRESUMEAUTOMATIC,PBT_APMRESUMECRITICAL,PBT_APMRESUMESUSPEND,PBT_APMSUSPEND"
Loop, PARSE, names, `,
if (wParam == %A_LoopField% && IsLabel(A_LoopField))
SetTimer, %A_LoopField%, -10
return 1
}

; 例) レジューム復帰時に呼ばれるのサブルーチン
PBT_APMRESUMESUSPEND:
MsgBox,待機状態から復帰しようとしている
return