Delphi 10.2でプログラムからエクスプローラーを開く
VCLアプリケーションから、エクスプローラーを開く方法。Lightroomで言うところの「エクスプローラーで表示」みたいな操作です。iTunesにも「Windowsエクスプローラーで表示」というメニューがありますね。Windows用のソフトでこの機能を備えていると、ユーザビリティが優れているなぁと昔から思います。
特定のファイルが選択された状態のウィンドウを開くことも出来るみたいです。
エクスプローラーを開く(関連付けされたアプリを起動)
Path: String
に開きたいフォルダのパスが入っている状態で、下記のShellExecute
メソッドを呼び出します。エクスプローラーを表示するだけでなく、フォルダの代わりにファイル名をフルパスで指定すれば、関連付けされたアプリケーションを実行する事もできます。また、ShellExecute
を使うにはuses
にShellApi
を追記する必要がありました。
uses
... ShellApi;
ShellExecute(Application.Handle, 'open', 'explorer.exe', PChar(Path), nil, SW_NORMAL);
ファイルを選択した状態で開く
/select
を指定すれば、特定のファイルが選択された状態のエクスプローラーウィンドウを表示できます。ディレクトリでなく特定のファイルが対象の場合はこっちを使うと良さそうです。
ShellExecute(Application.Handle, 'open', 'explorer.exe', PChar('/select,' + Filename), nil, SW_NORMAL);