[Home] [Kuri] [Sysad] [Internet?] [Blog] [Java] [Windows] [Download] [Profile] [Flash] [+] |
WSH を使った VBScript なものを、いくつか作ってみました。
VB 自体よくわかっていませんので、あ、なんか、こんなものができちゃった、
という程度のものです。
入力された URL にアクセスして、テキストをウィンドウで出力します。
コードは以下の通りです。
Dim strURL, objIE strURL = InputBox("URL: ", "iewget") if strURL = "" then MsgBox "Null string",,"Error!" else set objIE = WScript.CreateObject("InternetExplorer.Application") objIE.Navigate(strURL) Do While objIE.busy Loop Do While objIE.Document.readyState <> "complete" Loop WScript.Echo(objIE.Document.body.innerText) Set objIE = Nothing end if |
最初に、InputBox を使って URL を聞きます。
戻り値に入力された文字列が入っているはずですが、空っぽだったらエラーです。
そうでなければ、IE にアクセスさせます。
最後に、テキストを出力しています。
busy とか readyState とか見ていますが、意味はよくわかっていません。
詳しくは参考文献をご覧ください。
コマンドラインで指定された引数をもとに、メールを送信します。
Dim objMail, objApp, objArgs Set objArgs = WScript.Arguments If objArgs.Count <> 3 Then MsgBox "Usage: mailtest.vbs to_address subject message",,"Bad args" Else Set objApp = CreateObject("Outlook.Application") Set objMail = objApp.CreateItem(0) objMail.To = objArgs(0) objMail.Subject = objArgs(1) objMail.Body = objArgs(2) objMail.Send Set objMail = Nothing Set objApp = Nothing End If Set objArgs = Nothing |
Outlook の設定さえ間違っていなければ、送信されるはずです。
宛先アドレス、サブジェクト、本文を、コマンドラインの引数から得ます。
指定が間違っていれば、MsgBox でその旨を伝えます。
あとは見ての通りです。
それ以上は聞かないでくださいすみませんという感じです。
先ほどの、IE のやつと組み合わせると、 特定のページをテキストにしてメールに流す、ということができます。
Dim objIE, objMail, objApp set objIE = WScript.CreateObject("InternetExplorer.Application") objIE.Navigate("http://www.usupi.org/") Do While objIE.busy Loop Do While objIE.Document.readyState <> "complete" Loop Set objApp = CreateObject("Outlook.Application") Set objMail = objApp.CreateItem(0) objMail.To = "usu@usupi.org" objMail.Subject = "[usupi.org] " & Date objMail.Body = objIE.Document.body.innerText objMail.Send Set objMail = Nothing Set objApp = Nothing Set objIE = Nothing |
http://www.usupi.org/ をテキストに変換して usu@usupi.org にメールします。
これを、毎日更新されるページ(Qさんとかテーマパーク4096とか)に対して、
タスクで毎日実行するようにしておけば、
いちいちアクセスせずにメールを読むだけですむので、便利です(たぶん)。
コピーしたいファイルを指定すると、特定の場所に ssh でコピー(scp)します。
Dim objArgs, objSh, strFile, strCmd, intErr Const strDest = "usu@usugw.usupi.org:/usr/home/back" strCmd = "%SystemRoot%\system32\cmd.exe /C c:\cygwin\bin\scp.exe " Set objArgs = Wscript.Arguments If objArgs.count < 1 then MsgBox "ファイルを指定してください。" Else For each strFile in objArgs strCmd = strCmd + strFile + " " Next strCmd = strCmd + strDest Set objSh = WScript.CreateObject("WScript.Shell") intErr = objSh.Run strCmd, 1, True If intErr <> 0 Then MsgBox "scp が" & intErr & "を返しました",,"scp result" Else MsgBox "scp が終了しました",,"scp result" End If Set objSh = Nothing End if Set objArgs = Nothing |
特定の場所は、strDest で示しています。お好みの場所に変更してください。
strCmd に、Cygwin の scp.exe を指定しています。
パスなどが異なる場合は、ここを適当に変更します。
パスワードの入力などが必要なければ、Run メソッドの第2引数を 0 にすると、
ウィンドウが表示されないのでうっとおしくなくなるかもしれません。
UNIX や UNIX もどきな環境がない方にとっては、役に立たないものです。
Windows 上で XFree86 などの X サーバが動作しているときに、別のマシンの
kterm を Windows 上に表示させるものです。
dim strHost strHost = InputBox("Hostname: ", "kterm") if strHost = "" then MsgBox "Null string",,"Error!" else dim wshShell, strCmd, strOpt, intErr set wshShell = WScript.CreateObject("WScript.Shell") strCmd = " /usr/X11R6/bin/kterm" strOpt = "-fn a14 -fr r14 -fk k14" select case strHost case "tamao" strCmd = " /usr/X11R6/bin/kterm" strOpt = "-fn a14 -fr r14 -fkB k14" case "indy" strCmd = " /usr/bin/X11/kterm" end select intErr = wshShell.Run("%SystemRoot%\system32\rsh.exe " + strHost + _ strCmd + " -display %ComputerName%:0 " + strOpt, 0, FALSE) if intErr <> 0 then MsgBox "Return code : " & intErr,,"kterm result" end if set wshShell = Nothing end if |
まず最初に、InputBox で別マシンの名前を得ます。
そして、コマンド名(strCmd)やオプション(strOpt)を決定します。
マシンによって、kterm のパスが違ったり、オプションを変えたいことがあると思います。
そこで、Select case ステートメントを使って、
その別マシンにあったパスやオプションに変更しています。
あとは、rsh を起動するだけです。
ただ、そもそも別マシンに rsh できないといけないですし、
別マシンから Windows の X サーバに接続できるようにしておく必要もあります。
rsh できるようにするには、
別マシンの $HOME/.rhosts に Windows マシンのホスト名を書いておきます。
別マシンが rsh を受け付けさえすれば
(inetd 経由で in.rshd が動作する設定になっていれば)、いけると思います。
別マシンから kterm を起動(表示)できるようにするには、
あらかじめ Windows 上で xhost コマンドを実行しておきます。
# xhost そのマシン名 とか xhost + とか。xhost + は覚悟が必要です。;-p
[Home] [Kuri] [Sysad] [Internet?] [Blog] [Java] [Windows] [Download] [Profile] [Flash] [-] | |
usu@usupi.org | Last modified : Tue Jun 15 23:18:33 2004 |