CSV や画像などのファイルを操作するアプリを開発をしているとそのフォルダを確認したくなることがあります。そこで今回は WSH を利用して、エクスプローラで開く方法を紹介します。
WSH とは
WSH(Windows Script Host)は Windows 上で、スクリプトを実行するための仕組み(スクリプト実行環境)のことです。拡張子が .vbs(VBScript)や .js(JScript)などのスクリプトファイルを Windows 上で直接実行できるようにするものです。詳しくは Microsoft Learn のドキュメントをご確認ください。
リファレンスにメソッドやプロパティが列挙されています。WSH でどういったことができるのか確認できますね。
プログラムを実行するには
利用するのはプログラムを実行するための Run メソッド です。構文と引数は次の通りです。
| object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) |
| 1 | strCommand | 文字列 | 実行するコマンド |
| 2 | intWindowStyle | 数値 | ウィンドウの外観 指定できる値は 解説 を参照 |
| 3 | bWaitOnReturn | Boolean | True:プログラムの実行が終了するまでスクリプトの実行は中断 |
今回はこのメソッドを使用してエクスプローラ(explorer.exe)を起動します。
サンプルプログラム
以下のプログラムは、ノーツクライアントのデータディレクトリをエクスプローラで開きます。
|
Dim ns As New NotesSession Dim oWSH As Variant Dim sData As String 'データディレクトリ取得 sData = ns.GetEnvironmentString("Directory", True) 'WSH オブジェクトの作成 Set oWSH = CreateObject ("WScript.Shell") ' エクスプローラを実行(データディレクトリを指定) oWSH.Run |explorer.exe "| & sData & |"| |
WSH を LotusScript で利用するには、CreateObject で "WScript.Shell" を指定してオブジェクトを取得します。あとは Run メソッドを使って、explorer.exe を実行するだけです。開くフォルダはオプションとして指定します。exe の後ろにスペースで区切ってフォルダ名を指定するのですが、パスやファイル名にスペースが混ざることに備えて全体を "" でくくっています。
なお、データフォルダのパスは、GetEnvironmentString メソッドを使用して notes.ini の Directory エントリから取得しています。

0 件のコメント:
コメントを投稿