ファイルベースメッセンジャー
■概要
このソフトウェアはファイルのReadとWriteによって、コマンドプロンプト上でメッセンジャー的な動作を実現することを意図したvbscriptです。主にメッセンジャーの使用を禁じられた職場で、周囲に気づかれないように特定の誰かと会話をする際に使用するつもりで製作しました。
■仕様
共有サーバにファイルを1つ作成し、そのファイルの更新を監視することで、メッセージをやりとりします。
■使い方
read.vbsとwrite.vbsの一行目の変数(filePath)に、共有サーバ上の新規に作成したファイルを指定します。指定されたファイルは内容を消去されてしまうので、必要なファイルの名称を設定しないよう、ご注意ください。
2行目のintervalは、読み書きを行う頻度です。初期設定は10000(10秒)になっています。10秒に一度、メッセージの更新がないか確認し、書き込みを行った際は相手にメッセージが届くのを待つ為、10秒間ファイルロックを継続する仕様になっています。
会話をしたい両者がstart.cmdを実行し、両者ともプロンプトに「Program Start」と表示された状態になったら、メッセージのやり取りができる状態になります。write.vbsをクリックし、メッセージを打ち込むと、その内容が両者のプロンプトに表示されます。
■ファイル一覧
start.cmd
read.vbs
write.vbs
■start.cmd
コマンドプロンプトを立ち上げ、read.vbsをCUIで実行する終了する時はCtrl+C。
■read.vbs
変数で指定したパスのファイルの最終更新日を見て、更新されたらファイルの中身を出力する。
■write.vbs
InputBoxを出して、そこに書き込んだ内容を指定ファイルに出力するだけの粗悪な子。排他制御として、この子を立ち上げた瞬間にファイルはロックされ、書き込みを終えた後も指定した秒数ファイルロックをかけ続ける。そうしないと、向こうが読む前に書き込みをしてしまう可能性があるので。
■注意点
あまり大勢で使うとファイルサーバに負荷がかかる恐れがあります。自信の端末に共有フォルダを作成できる場合は、そちらを使用しましょう。
職場での利用には、上司の許可が必要になります。無許可で使用した場合は、叱責、減俸、契約解除の原因となる場合がありますのでご注意ください。
start.cmd
cmd /k "cscript read.vbs"
write.vbs
filePath = "hogehoge.txt"
interval = 10000
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(filePath, 2, True)
inputText = InputBox("メッセージを入力してください")
objFile.WriteLine(inputText)
WScript.Sleep interval
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing
read.vbs
filePath = "hogehoge.txt"
interval = 10000
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
Set objFile = objFSO.GetFile(filePath)
lastModified = objFile.DateLastModified
WScript.Echo "Program Start"
Do
WScript.Sleep(interval)
tmpLastModified = objFile.DateLastModified
If lastModified <> tmpLastModified Then
lastModified = tmpLastModified
Set objReadFile = objFSO.OpenTextFile(filePath, 1, True)
Do Until objReadFile.AtEndOfStream
WScript.Echo objReadFile.ReadLine
Loop
objReadFile.Close
End If
Loop
objReadFile.Close