Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как открыть проводник Windows из формы в Delphi: пошаговое руководство

Delphi , ОС и Железо , Windows

Вопрос, с которым сталкиваются разработчики на Delphi, заключается в необходимости открыть проводник Windows из формы при нажатии на кнопку. Это может потребоваться для различных задач, например, для доступа к файловой системе или для использования функционала проводника в качестве вспомогательного инструмента в приложении.

Для решения этой задачи можно использовать функцию ShellExecute из модуля ShellAPI. Эта функция позволяет запустить внешнюю программу, в данном случае — проводник Windows.

Шаг 1: Подключение модуля ShellAPI

Для начала необходимо подключить модуль ShellAPI в раздел uses вашего файла формы. Это можно сделать следующим образом:

uses
  System.SysUtils,
  Vcl.Controls,
  Vcl.Forms,
  ShellAPI;

Шаг 2: Использование функции ShellExecute

Затем, в обработчике события нажатия на кнопку, вы можете вызвать функцию ShellExecute, передав ей необходимые параметры:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, nil, 'explorer.exe', nil, nil, SW_NORMAL);
end;

Этот код откроет проводник по умолчанию, то есть покажет корневой диск.

Шаг 3: Открытие проводника в определенной папке

Если вам нужно открыть проводник в конкретной папке, вы можете передать путь к этой папке как аргумент:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, nil, 'explorer.exe', PChar('c:\'), nil, SW_NORMAL);
end;

Замените 'c:\' на путь к нужной папке.

Шаг 4: Выбор конкретного файла в проводнике

Для выбора определенного файла в проводнике можно использовать следующий код:

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

Вызов SelectFileInExplorer('C:\Windows\notepad.exe'); откроет проводник, выделив файл notepad.exe.

Шаг 5: Работа с FireMonkey

Если вы используете FireMonkey, вам потребуется использовать WindowHandleToPlatform для получения правильного обработчика окна:

uses
  Winapi.Windows,
  Winapi.ShellAPI,
  FMX.Forms,
  FMX.Platform.Win;

procedure TForm1.OpenExplorerSelectingFile(const AFileName: string);
begin
  ShellExecute(WindowHandleToPlatform(Application.MainForm.Handle).Wnd, 'open', 'explorer.exe', PChar('/select,"' + AFilename + '"'), nil, SW_NORMAL);
end;

Важные замечания

  • Используйте PChar для передачи строковых аргументов, но учтите, что для работы с широкими символами следует использовать PWideChar.
  • Параметр lpVerb в ShellExecute может быть установлен в 'explore' для открытия папки.
  • Будьте внимательны с использованием Application.Handle в случае, если ваше приложение не имеет активного окна (например, в консольном приложении или DLL).

Используя эти инструкции, вы сможете открыть проводник Windows из формы в Delphi, выбрав нужную папку или файл, и интегрировать его функционал в ваше приложение.

Создано по материалам из источника по ссылке.

Вопрос связан с разработкой на Delphi, где необходимо открыть проводник Windows из формы приложения, используя функцию `ShellExecute`.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 11:11:39/0.0061287879943848/0