〜 システム 〜
電力停止モード使用可否とタイムアウト時間を設定 (要USER32.DLL)

API関数のSystemParametersInfoは、デスクトップ項目関連のほか、
ユーザー補助、電力管理等、コントロールパネルで設定できる項目の設定と取得をするものであり、
取得及び設定のできる項目総数が150ほどあるので、このページだけで全てを紹介できません。
今回は「電力停止モードの使用可否、および実行されるまでの待ち時間を設定してみる」と言うことで、
設定に必要なSystemParametersInfoの設定パラメータのみを抜粋すると次のようになります。
uiActionuiParampvParam
電力停止モードの使用可否設定SPI_SETPOWEROFFACTIVE(=0x0056)無効(=0)、有効(=1)不使用(=0)
電力停止モード実行までの時間SPI_SETPOWEROFFTIMEOUT(=0x0052)待ち時間(=秒)不使用(=0)
もし、電力停止モードを無効にしていると、設定時間に達しても実行はされません。 また、待ち時間を0秒にしていると、電力停止モードが有効であっても実行はされないようです。 うまく設定できたかを確認するには、コチラのやり方を参考に設定情報を取得してください。

spi アクション, 送信値, 一時変数, 更新
アクション実施するシステム情報の取得・設定内容を指定する。
送信値数値パラメータを指定する。
一時変数一時的に使用する変数のポインタを指定する。
更新設定時にユーザープロファイルの更新、ウィンドウへの通知を実施するか否かを指定する。

setpoweroffmode 使用可否
使用可否電力停止モードを有効(=1)にするか無効(=0)にするかを指定する。

setpowerofftime 設定時間, 設定単位
設定時間電力停止実行までの待ち時間を指定する。
設定単位分単位で設定する場合は1を、秒単位のままでよいなら0を指定する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
	ll_libload user, "user32.dll"
	ll_getproc SystemParametersInfo, "SystemParametersInfoA", user

#module
#deffunc spi int, int, int, int
	mref uiaction, 0 : mref uiparam, 1 : mref pvparam, 2 : mref fwinini, 3
	prm = uiaction, uiparam, pvparam , fwinini
	ll_callfunc prm, 4, SystemParametersInfo@
	return

#deffunc setpoweroffmode int
	mref mode, 0
	spi 0x0056, mode // SPI_SETPOWEROFFACTIVE
	return

#deffunc setpowerofftime int, int
	mref time, 0 : mref mflg, 1
	spi 0x0052, time * (mflg * 59 + 1) // SPI_SETPOWEROFFTIMEOUT
	return
#global

	minute = 60
	objsize 60, 25
	pos  10, 10 : mes "電力停止モード"
	pos  10, 40 : combox index, , "無効\n有効"
	pos  80, 40 : input minute, 25, , 3
	pos 110, 40 : mes "分後に実行"
	pos 200, 40 : button "設定", *setting
	stop

*setting
	setpoweroffmode index
	setpowerofftime minute, 1
	dialog "設定しました"
	stop

setpoweroffmode 使用可否
使用可否電力停止モードを有効(=1)にするか無効(=0)にするかを指定する。

setpowerofftime 設定時間, 設定単位
設定時間電力停止実行までの待ち時間を指定する。
設定単位分単位で設定する場合は1を、秒単位のままでよいなら0を指定する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#uselib  "user32.dll"
#func  global SystemParametersInfo "SystemParametersInfoA" int, int, var, int

#module
#deffunc setpoweroffmode int mode, local i
	SystemParametersInfo 0x0056, mode, i // SPI_SETPOWEROFFACTIVE
	return 

#deffunc setpowerofftime int time, int mflg, local i
	SystemParametersInfo 0x0052, time * (mflg * 59 + 1), i // SPI_SETPOWEROFFTIMEOUT
	return
#global

	minute = 60
	objsize 60, 20
	pos  10, 10 : mes "電力停止モード"
	pos  10, 40 : combox index, , "無効\n有効"
	pos  80, 40 : input minute, 25, , 3
	pos 110, 40 : mes "分後に実行"
	pos 200, 40 : button gosub "設定", *setting
	stop

*setting
	setpoweroffmode index
	setpowerofftime minute, 1
	dialog "設定しました"
	return