Как отобразить проводник с выбранным файлом? - PullRequest
9 голосов
/ 03 июня 2011

Что вызов API для отображения окна проводника с выбранным файлом выбран? Точно так же, как и при нажатии кнопки «Найти цель ...» в диалоговом окне «Свойства» ярлыка .lnk ? Я знаю, что для этого есть функция (или метод интерфейса), но я забыл имя и не могу найти его снова.

Обратите внимание, что я знаю о командной строке explorer /select,<pathname> и не заинтересован в ее использовании вместо вызова API.

Ответы [ 4 ]

7 голосов
/ 03 июня 2011

Эта функция открывает проводник и выбирает указанный файл:

uses ShellAPI, ...;

procedure TForm1.ShowFile(const aFileName:String);
begin
  ShellExecute(Handle, 'OPEN', PChar('explorer.exe'), PChar('/select, "' + aFileName + '"'), nil, SW_NORMAL)
end;

procedure TForm1.ShowFolder(const aPath:String);
begin
  ShellExecute(Handle, 'OPEN', PChar('explorer.exe'), PChar('/root, "' + aPath + '"'), nil, SW_NORMAL) 
end;

Или это «командная строка», которую вы не хотели использовать?

6 голосов
/ 05 июня 2011

Вам нужно SHOpenFolderAndSelectItems .Этот вопрос обсуждался здесь ранее - Программно выбирая файл в проводнике
Не забудьте вызвать CoInitialize перед первым использованием SHOpenFolderAndSelectItems

3 голосов
/ 03 июня 2011

Вы ищете IExplorerBrowser :: BrowseToObject , я думаю. Основанный на очень расплывчатом, неконкретном вопросе и комментариях без дополнительной информации при запросе, это лучшее предположение , которое я могу предоставить. IExplorerBrowser имеет множество дополнительных функций, которые вы, возможно, захотите изучить, в случае, если этот конкретный метод не совсем то, что вы ищете.

2 голосов
/ 03 июня 2011

Поскольку вы хотели только имя: IShellLink?

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