タスクスケジューラにVBScriptを設定し起動すると、VBScript内のMsbBox関数が正常に動作しません。
(メッセージボックが表示されません。)
当方、バックアップ時に容量不足やバックアップ先媒体が準備されていない場合、エラーメッセージを表示するためMsbBox関数をVBScript内で使用していました。
この代替となるのが、WScript.ShellのPopupメソッドになります。
以下にPopupメソッドを使用したサンプルスクリプトを記します。
Popupメソッドは、Popupメソッドの解説を確認すると、以下の記述がりました。
Popup メソッドを呼び出すと、実行中のホスト実行可能ファイルの種類 (WScript.exe または CScript.exe) に関係なく、メッセージ ボックスが表示されます
したがって、CScript.exeで起動した場合もポップアップのメッセージボックスを表示することができます。
また、Popupメソッドの引数を確認するとアイコン表示やYes/Noボタンなども表示することができます。
以下のサンプルスクリプトは実際にタスクスケジューラに設定してポップアップメッセージ(MsgBox関数の代替え)として動作しました。
Option Explicit Dim objWS Set objWS = CreateObject("Wscript.Shell") objWS.Popup "WshShell.Popupメソッドでメッセージを表示" Set objWS = Nothing
以下は、タスクスケジューラに上記のスクリプトを設定時刻に起動するように設定し起動されたときのスクリーンショットです。
MsbBox関数の場合、タスクスケジューラで起動するように指定するとメッセーボックスが表示されません。
しかし、WshShell.Popupメソッドを使用することによりMsbBoxの代替えとして使用できるし、
タスクスケジューラからの起動でもメッセージボックス(ポップアップメッセージ)を表示することができます。
以上、WshShell.Popupメソッドについてでした。