Выбор файла в проводниках 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. Эта функция также позволяет мультиселект.