私の目標は、特定のファイルを選択して、Windowsエクスプローラーウィンドウを開くC#コードを作成することです。そのような窓がすでに開いているなら、私はそれを前面に持ってきたいです。私は2つのオプションを試しました。
まず、明示的に呼び出すことから始めexplorer.exe
ます:
arg = "/select, " + pathToFile;
Process.Start("explorer.exe", arg);
これにより、ウィンドウが開いて正常に選択されますが、問題は、ウィンドウが存在する場合でも、常に新しいウィンドウが開くことです。だから私はこれを試しました:
Process.Start(pathToDir);
これにより、新しいウィンドウが開くか、古いウィンドウがフォーカスされますが、ファイルを選択するオプションがありません。
私に何ができる?explorer
の引数を調べましたが、使用できるものが見つかりません。私が思いつくことができる最後の手段のオプションは、すでに開いているウィンドウのリストを取得し、それを処理するためにいくつかのWINAPIレベルのコードを使用することですが、それはやり過ぎのようです。