Моя цель - написать код С#, который откроет окно проводника Windows, с выбранным конкретным файлом. Если такое окно уже открыто, я хочу довести его до фронта. Я попробовал два варианта.
Сначала я начинаю с явного вызова explorer.exe
:
arg = "/select, " + pathToFile;
Process.Start("explorer.exe", arg);
Это открывает и выбирает окно в порядке, но проблема в том, что он всегда откроет новое окно, даже если оно существует. Поэтому я попробовал это:
Process.Start(pathToDir);
Это либо открывает новое окно, либо фокусируется на старом, но не дает мне выбора для выбора файла.
Что я могу сделать? Я посмотрел на explorer
аргументы, и я не вижу ничего, что мог бы использовать. Последний вариант, который я могу придумать, - это получить список уже открытых окон и использовать некоторый код уровня WINAPI для его обработки, но это похоже на перебор.