備忘くん本体
‘VBS:備忘くん
‘作成:07.04.26
‘FileSystemオブジェクトのインスタンス化
Set FSO = WScript.CreateObject(“Scripting.FileSystemObject”)
‘二重起動の抑止。アベンダーが存在するのは【備忘くん】起動最中のみ。
If FSO.FileExists(“備忘くんアベンダー”) then
’二重起動の抑止2。アベンダーは起動中、1分毎に更新される。
’つまりアベンダーの更新時刻が現時刻or1分前と等しくない場合、
’アベンダーは存在するが備忘くんは動いていない。
if left(formatDateTime(now,vbGeneralDate),16) _
= left(formatDateTime(FSO.GetFile(“備忘くんアベンダー”).DateLastModified, vbGeneralDate),16) _
or left(formatDateTime(now,vbGeneralDate),16) _
= left(formatDateTime(DateAdd(“n”, -1, now),vbGeneralDate),16) then
i=msgbox (“すでに【備忘くん】が起動しています。”„”備忘くん”)
WScript.quit
end if
end if
‘起動。アベンダー作成。
Set test = FSO.OpenTextFile(“備忘くんアベンダー”,8,true)
test.WriteLine “当ファイルを削除することで、スクリプトをABENDできます。”
test.WriteLine “なお、起動した日時は” & date & time & “です。”
Set test = nothing
‘起動メッセージ表示。ただし起動オプション “-h” がついているときは非表示
Set arg = WScript.Arguments
hidden=false
if arg.length=1 then
if arg(0)=”-h” then hidden=true
end if
if hidden=false then
msgbox “【備忘くん】を起動します。” & vbCrLf _
& vbCrLf _
& “【備忘くん】は無限ループ仕様です。” & vbCrLf _
& “終了させたいときは、” & vbCrLf _
& “起動時に同フォルダに生成されるファイル「備忘くんアベンダー」を” & vbCrLf _
& “エクスプローラから削除してください。ABENDできます。” & vbCrLf _
& vbCrLf _
& “アラートさせるタスクは「forget_em_not.ini」に記入してください。” & vbCrLf _
& “なお、iniファイル更新後、当スクリプトの再起動は必要ありません。” & vbCrLf _
& vbCrLf _
& “起動時にこのメッセージを表示させたくない場合は、” & vbCrLf _
& “起動オプションとして -h をつけてください。”
end if
Set WSHShell = WScript.CreateObject(“WScript.Shell”)
‘メインを無限ループさせる。
do
main
loop
‘————————————————————————————————————————
Sub main()
‘分が変わるまで、一秒ずつ待ちつづける
nextMinute = minute(now) + 1
if nextMinute = 60 then nextMinute = 0
do until nextMinute = minute(now)
If not FSO.FileExists(“備忘くんアベンダー”) Then
i=msgbox (“【備忘くん】を終了します。”„”備忘くん”)
WScript.quit
end if
WScript.Sleep 1000
loop
‘分が変わったらタスクリストを読む
WSHShell.Run “wscript callTask.vbs”
End Sub