スクリーンセーバを起動させない

プログラム

会社でしばらく放置していると勝手にロック画面になるあれ。
<スクリーンセーバ キャンセル 抑制>
上記ワードで調べた結果VBScriptで出来そうだったので、下記3点を考慮して転がっている情報を元にVBScriptとBATで作成。

  1. 動いているのかわからないのでBATから呼び出して止めることが出来る。
  2. 1.の理由からVBScript単体での起動はできなくする。
  3. BATは二重起動できないようにする

SendShiftkey.bat

二重起動しないようにしている処理が味噌なところ。
実行されていると下記のようなメッセージが表示され複数実行されない。

SendShiftKey.bat (VBScriptを起動するBAT)

@echo off
cd /d %~dp0
set RC=-1
call :main 0>>"%~dpnx0"
exit /b %RC%

:main
cscript SendShiftKey.vbs /R
set RC=0

SendShiftKey.vbs

単体で動かそうとすると下記の表示がされ実行できません。

60秒に一度Shiftキーを擬似的に押下げます、間隔を広げたい場合はお好みで修正して下さい。

SendShiftKey.vbs

'
' シフトキーを一定間隔で押すスクリプト
'

Dim objShell

if WScript.Arguments.Count = 0 then
	WScript.echo("バッチファイルから起動してください")
	WScript.Quit(-1)
else
	if Wscript.Arguments(0)="/R" then
		'起動用のオブジェクトを生成
		Set objShell = WScript.CreateObject("WScript.Shell")
		do
			objShell.SendKeys "+"
			WScript.echo(now & " Send shift key")
			WScript.Sleep 1000*60
		Loop
	else
		WScript.Echo "オプションに /R を指定し、実行してください"
	end if
end if

注意点

Sendkayで実際にShiftを押していることになるので、フォーカスされているウィンド次第ではなにかしらの影響があります。
例えばデスクトップ画面がフォーカスされた状態でしばらく実行されると下記が表示されます。

同じようにものすごいよいタイミングで文字入力した場合はもちろん影響があります。
意外なところでFF14の離籍もキャンセルされますが、トイレやちょっとした食事以外では使わないようにしましょう。


コメント