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

参考🙇

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください