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