Как открыть проводник Windows, когда я нажимаю кнопку? - PullRequest
7 голосов
/ 11 августа 2009

У меня есть форма в проекте Delphi. На форме есть кнопка. Когда пользователь нажимает кнопку, я хочу, чтобы он открыл Windows Explorer.

Какой код мне понадобится для этого?

Ответы [ 4 ]

26 голосов
/ 11 августа 2009

Ну, если вам нужно выбрать какой-то конкретный файл в проводнике, у меня есть следующая функция, которую я использую

procedure SelectFileInExplorer(const Fn: string);
begin
  ShellExecute(Application.Handle, 'open', 'explorer.exe',
    PChar('/select,"' + Fn+'"'), nil, SW_NORMAL);
end;

и вы можете назвать это:

SelectFileInExplorer('C:\Windows\notepad.exe');

РЕДАКТИРОВАТЬ: Как уже упоминалось, ShellAPI должен быть добавлен в ваш список использования

11 голосов
/ 11 августа 2009

Основываясь на том, что сказал Мейсон Уилер: вы также можете передать каталог в качестве аргумента, чтобы открыть окно в месте, отличном от заданного по умолчанию:

uses
  ShellAPI;

...

  ShellExecute(Application.Handle,
    nil,
    'explorer.exe',
    PChar('c:\'), //wherever you want the window to open to
    nil,
    SW_NORMAL     //see other possibilities by ctrl+clicking on SW_NORMAL
    );
8 голосов
/ 11 августа 2009

Попробуйте это:

ShellExecute(Application.Handle, nil, 'explorer.exe', nil, nil, SW_NORMAL);

Вам нужно будет добавить ShellAPI к вашему пункту .

2 голосов
/ 14 августа 2009

Согласно http://msdn.microsoft.com/en-us/library/bb762153%28VS.85%29.aspx, ShellExecute также поддерживает глагол «исследовать», который «исследует» папку, указанную lpFile, поэтому это должно работать:

ShellExecute(Application.Handle, 'explore', '.', nil, nil, SW_NORMAL);
...