Выбор файла в проводниках Windows не всегда работает - PullRequest
9 голосов
/ 27 ноября 2010

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

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 Ответ

13 голосов
/ 27 ноября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...