このエントリーをはてなブックマークに追加


タスクスケジューラで起動するVBScirptのMsgBox代替・WScript.Shell.Popup

タスクスケジューラにVBScriptを設定し起動すると、VBScript内のMsbBox関数が正常に動作しません。
(メッセージボックが表示されません。)
当方、バックアップ時に容量不足やバックアップ先媒体が準備されていない場合、エラーメッセージを表示するためMsbBox関数をVBScript内で使用していました。

この代替となるのが、WScript.ShellのPopupメソッドになります。
以下にPopupメソッドを使用したサンプルスクリプトを記します。


関連記事

WshShell.Popupメソッドについて

Popupメソッドは、Popupメソッドの解説を確認すると、以下の記述がりました。

Popup メソッドを呼び出すと、実行中のホスト実行可能ファイルの種類 (WScript.exe または CScript.exe) に関係なく、メッセージ ボックスが表示されます

したがって、CScript.exeで起動した場合もポップアップのメッセージボックスを表示することができます。
また、Popupメソッドの引数を確認するとアイコン表示やYes/Noボタンなども表示することができます。

Popupメソッドを使用したサンプルスクリプト

以下のサンプルスクリプトは実際にタスクスケジューラに設定してポップアップメッセージ(MsgBox関数の代替え)として動作しました。

Option Explicit

Dim objWS
Set objWS = CreateObject("Wscript.Shell")
objWS.Popup "WshShell.Popupメソッドでメッセージを表示"
Set objWS = Nothing

以下は、タスクスケジューラに上記のスクリプトを設定時刻に起動するように設定し起動されたときのスクリーンショットです。

01.gif

MsbBox関数の場合、タスクスケジューラで起動するように指定するとメッセーボックスが表示されません。
しかし、WshShell.Popupメソッドを使用することによりMsbBoxの代替えとして使用できるし、
タスクスケジューラからの起動でもメッセージボックス(ポップアップメッセージ)を表示することができます。

以上、WshShell.Popupメソッドについてでした。



添付ファイル: file01.gif 684件 [詳細] filepopup.vbs.zip 949件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:50:36