2010年1月24日日曜日

昼食の時間だけスクリーンセーバをデフラグツールに変更する(改良版)

昨日紹介したスクリーンセーバー切り替え VBScript をマイナーチェンジしました。

新しいスクリプトでは、すでにスクリーンセーバーが起動していた場合は、それを強制終了させます。ここれにより、以下のような挙動になります。(スクリーンセーバーの設定が10分の場合)


■ スクリーンセーバー切り替え時に、すでにスクリーンセーバーが動作している場合


  • 基準時間: スクリーンセーバーの変更、および既存スクリーンセーバの停止

    →画面がロックされる

  • +10分: 再度タイムアウトによりスクリーンセーバーが起動される


■ スクリーンセーバー切り替え時に、スクリーンセーバーが動作していない場合


  • ユーザーがロックもしくは放置してから 10 分後にタイムアウトによりスクリーンセーバーが起動される


これにより、タスク設定時間より早めに休憩に入ってしまったとしても、お昼には確実にデフラグスクリーンセーバーを起動するようになりました。

なお、前回は Auglogics Disk Defrag を使用していましたが、今回のスクリプトは MyDefrag (JkDefragの後継) 向けとしてあります。


MyDefrag
http://www.mydefrag.com/





'
' スクリーンセーバを auslogics disk defrag に設定する
'

SS_DEFRAG = "C:\WINDOWS\system32\MYDEFR~1.SCR"

HKEY_CURRENT_USER = &H80000001
strComputer = "."

Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Control Panel\Desktop"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, "SCRNSAVE.EXE", SS_DEFRAG

' すでに別のスクリーンセーバ(logon.scr)が動作していたら、そのスクリーンセーバーを
' ストップさせる。
Set objShell = CreateObject("Wscript.Shell")
r = objShell.Run("taskkill /F /IM logon.scr", 1, True)

0 件のコメント:

コメントを投稿