WshShellオブジェクトを利用し、スクリプトから外部プログラムを起動して、キー・ストロークを送信して制御する。
前回までは、WScriptオブジェクトの詳細に関して解説した。今回からはWshShellオブジェクトの解説に入っていこう。
まず、第2回で紹介したWSHオブジェクト・モデルの図を再度掲載しておこう。この図はWSHのビルトイン・オブジェクトをまとめたものである。WSHの標準オブジェクトとしては大きく分けてWScript、WshShell、WshNetwork、WshControllerの4つがある(WshArgumentsからWshUnnamedに関しては、WScriptオブジェクトに付随するものとして前回説明した)。今回から説明するのは、図の下半分にあるWshShellオブジェクト(図の赤枠部分)である。WshShellオブジェクトは、“Shell”という名前が付いていることからも分かるとおり、OSに対する処理を行うオブジェクトである(shellには、「OSを包み込む」という意味がある)。このオブジェクトを利用することで、プログラムの実行や環境変数の操作、レジストリの操作などができる。
次表は、WshShellオブジェクトに含まれる各メソッド/プロパティと、それらの役割を一覧にしたものである。
メソッド/プロパティ | 役割 |
---|---|
Run/Exec | プログラムの実行 |
AppActivate/SendKeys | プログラムへのキー・ストロークの送信 |
SpecialFolders | 「デスクトップ」や「マイ ドキュメント」などの特殊フォルダのフルパスの取得 |
Environment/ExpandEnvironmentStrings | 環境変数の取得と設定 |
CreateShortcut | ショートカットの作成 |
LogEvent | アプリケーション・イベント・ログの作成 |
RegRead/RegWrite/RegDelete | レジストリの値の取得と設定 |
CurrentDirectory | カレント・ディレクトリの取得と変更 |
Popup | ダイアログ・ボックスの表示 |
WshShellオブジェクトのメソッドとプロパティ |
WshShellオブジェクトのメソッド/プロパティと、関連するオブジェクトをまとめると次のような図になる。
前回まで説明してきたWScriptオブジェクトとは違い、WshShellオブジェクトは、明示的にオブジェクトを作成しないと使用できない(WScriptオブジェクトは暗黙的に作成される)。WshShellオブジェクトは“WScript.Shell”というプログラムIDを持つCOMオブジェクトなので、CreateObjectメソッドで作成できる。具体的にWshShellオブジェクトを作成するには次のコードをスクリプトの冒頭部分で記述すれば、objShellをWshShellオブジェクトとして利用できる。
Set objShell = WScript.CreateObject("WScript.Shell")
objShellという変数名は、変数名の命名規則にさえ従っていれば何でもよいが、この連載ではobjShellという変数名に統一している。連載第4回で説明したとおり、本稿では変数の命名法としてハンガリー記法を使う。
Copyright© Digital Advantage Corp. All Rights Reserved.