40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

電話ログシステムのvbs版



電話をかけるだけで、その音声がブログにアップされる「電話ログ」なるものを考え付いた方がいらっしゃるのだけど、ご本人が書かれているとおり、色々なものの組み合わせになっている。

電話からの入力はS Rec午後のこ〜だに頼るけど、それ以外のPerl の処理とタスクスケジューラーの部分は、VBScript(と別途BASP21コンポーネント)だけで出来そうなきがするので、ちょろっと書いてみた。

手元にテスト利用可能なFTPサーバーなかったので、FTPのPutの処理があやしいかもしれないけど、たぶんこれで問題ない気がする。

==ここからUpToMoblog.vbs==
Option explicit
On Error Resume Next
Dim strComputer
Dim objWMIService
Dim colMonitoredEvents
Dim objLatestEvent

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\cimv2")
If Err 0 then
Wscript.Echo now & vbtab & "Can't connect tagetmachine."
Wscript.Quit
Else
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceCreationEvent " _
& "WITHIN 10 WHERE " _
& "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _
& "TargetInstance.GroupComponent= " _
& "'Win32_Directory.Name=""c:\\\\temp""'")
Do

Set objLatestEvent = colMonitoredEvents.NextEvent
Wscript.Echo now & vbtab & objLatestEvent.TargetInstance.PartComponent
call UseFTP
call sendEmail
Loop
End if

Sub sendEmail

Dim objBobj
Dim strSvrname
Dim strMailTo
Dim strMailFrom
Dim strMailSubj
Dim strMailBody
Dim strMailAttachment
Dim Msg

Set objBobj = WScript.CreateObject("basp21")
strSvrname = "xxxx.xxxx.xxx.xxx"
strMailTo = "xxxx.xxxx.xxx.xxx"
strMailFrom = "xxxx.xxxx.xxx.xxx"
strMailSubj = "xxxx.xxxx.xxx.xxx"
strMailBody = "xxxx.xxxx.xxx.xxx"
strMailAttachment = "xxxx.xxxx.xxx.xxx"

msg = objBobj.SendMail(strSvrname,strMailTo,strMailFrom,strMailSubj,strMailBody,strMailAttachment)

End sub

Sub UseFTP

Dim objFTP
Dim strFTPSvrname
Dim strFTPloginuser
Dim strFTPloginpasswd
Dim rc

Set objFTP = CreateObject("basp21.FTP")
strFTPSvrname = "xxxx.xxxx.xxx.xxx"
strFTPloginuser = "xxxx.xxxx.xxx.xxx"
strFTPloginpasswd = "xxxx.xxxx.xxx.xxx"

rc = objFTP.Connect(strFTPSvrname,strFTPloginuser,strFTPloginpasswd)

If rc= 0 Then
objFTP.Command("pasv")
rc = objFTP.PutFile("C:\temp","html/images",1)
objFTP.Close
End if

End sub
==ここまでUpToMoblog.vbs==

ちなみに上記のスクリプトの"xxxx.xxxx.xxx.xxx" の箇所を適宜修正して
利用する必要がありますけど。

strSvrname:SMTPサーバーを指定
strMailTo:宛先のメールアドレスを指定
strMailFrom:送信者のメールアドレスを指定
strMailSubj:メールの題名を指定
strMailBody:メールの本文を指定
strMailAttachment:メールに添付するファイルを指定
strFTPSvrname:FTPサーバーを指定
strFTPloginuser:FTPサーバーへのログインIDを指定
strFTPloginpasswd:FTPサーバーへのログインパスワードを指定