Выбор файла в проводниках Windows не всегда работает

Используя следующее

explorer.exe /select, "c:\path\to\file.txt"

Я могу открыть Windows Explorer и выбрать файл. В Delphi я делаю это, чтобы выбрать файл "Parm":

ShellExecute(Application.MainForm.Handle, 'OPEN', PChar('explorer.exe'), PChar('/select,"' + Parm + '"'), nil, SW_NORMAL);

И это работает. Моя проблема заключается в следующем: если я выбрал другой файл в недавно открытом проводнике (щелкнув по другому файлу), а затем вызвал вышеуказанный код, файл "Parm" больше не выбирается. Интересно, что есть некоторые программы, которые снова выбирают файл. Например, ITunes всегда выбирает нужный файл.

У кого-нибудь есть подсказка, как заставить Проводника всегда выбирать указанный файл?

1 ответ

Решение

Это известное ограничение использования ключа /select с explorer.exe, он будет выбирать конкретный файл, только если родительская папка еще не открыта.

Вместо этого вам придется использовать вызов API, такой как SHOpenFolderAndSelectItems. Эта функция также позволяет мультиселект.

Другие вопросы по тегам