Delphi 10.2でプログラムからエクスプローラーを開く

Delphi 10 ShellExecute

VCLアプリケーションから、エクスプローラーを開く方法。Lightroomで言うところの「エクスプローラーで表示」みたいな操作です。iTunesにも「Windowsエクスプローラーで表示」というメニューがありますね。Windows用のソフトでこの機能を備えていると、ユーザビリティが優れているなぁと昔から思います。
特定のファイルが選択された状態のウィンドウを開くことも出来るみたいです。

エクスプローラーを開く(関連付けされたアプリを起動)

Path: Stringに開きたいフォルダのパスが入っている状態で、下記のShellExecuteメソッドを呼び出します。エクスプローラーを表示するだけでなく、フォルダの代わりにファイル名をフルパスで指定すれば、関連付けされたアプリケーションを実行する事もできます。また、ShellExecuteを使うにはusesShellApiを追記する必要がありました。

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);

参考🙇

コメントを残す

メールアドレスが公開されることはありませんし、空欄で大丈夫です。っていうかコメント以外空欄で良いです。気軽にコメントして下さい。
Email won't be published. Or you can leave it blank. I mean you can leave everything blank but comment. Feel free to leave a comment, thanks.