「マウス無効」のタスクのトリガーがスタンバイ開始時(Kernel-Power 506)だと間に合わない可能性があるので他の方法も考えた。
「ワークステーション ロック時」をトリガーにした「マウス無効→有効 」のタスクを作成する
スタンバイ時、デスクトップアプリは停止するので 「マウス無効→待ち時間→マウス有効」で待ち時間の所で停止させる。画面ロックのみの場合は待ち時間後にマウス有効になるので問題ない。
画面ロック→スタンバイ の順なのでタスクのトリガーを「ワークステーション ロック時」にすることでマウスは確実に無効にできる。
プログラム例
画面ロックから停止まで2秒程度なので待ち時間は10秒とした。
マウス無効_有効.bat
cd /d %~dp0
devcon.exe disable "HID_DEVICE_SYSTEM_MOUSE"
timeout /t 10
rem タイマーはスタンバイ時も停止しないので復帰直後にマウス有効
devcon.exe enable "HID_DEVICE_SYSTEM_MOUSE"
exit
マウス無効_有効.vbs
Set WshShell = CreateObject( "WScript.Shell" )
Set fso = CreateObject("Scripting.FileSystemObject")
'ファイルの所にカレントディレクトリを移動
WshShell.CurrentDirectory = fso.getParentFolderName(WScript.ScriptFullName)
'マウス無効
WshShell.Run "devcon.exe disable HID_DEVICE_SYSTEM_MOUSE", 0, True
WScript.Sleep 10*1000
'タイマーはスタンバイ時も停止しないので復帰直後にマウス有効
WshShell.Run "devcon.exe enable HID_DEVICE_SYSTEM_MOUSE", 0, True
「スリープをプログラムで実行する方法」用にはトリガーなしの「マウス無効」のタスクを作る。