2025/10/23

フォルダをエクスプローラで開く

CSV や画像などのファイルを操作するアプリを開発をしているとそのフォルダを確認したくなることがあります。そこで今回は WSH を利用して、エクスプローラで開く方法を紹介します。


WSH とは

WSH(Windows Script Host)は Windows 上で、スクリプトを実行するための仕組み(スクリプト実行環境)のことです。拡張子が .vbs(VBScript)や .js(JScript)などのスクリプトファイルを Windows 上で直接実行できるようにするものです。詳しくは Microsoft Learn のドキュメントをご確認ください。

Windows Script Host

リファレンスにメソッドやプロパティが列挙されています。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 件のコメント:

コメントを投稿