放置庫

とりあえず手を出してみる。

備忘くん本体

‘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