#delphi #windows-explorer
#delphi #windows-explorer
Вопрос:
Я хотел бы добавить в приложение Delphi способ, позволяющий пользователю вызывать проводник Windows (возможно, используя что-то вроде ShellExecute, возможно).
Однако, и здесь мне нужна некоторая помощь, пожалуйста, приложению потребуется захватить ^ H ^ H ^ H ^ H ^ H ^ H для чтения пути к папке, к которой переходит пользователь, находясь в проводнике Windows.
Возможно ли получить эту информацию из проводника Windows?
[редактировать: Если это невозможно или нереально, мой запасной план состоит в том, чтобы предоставить отдельную кнопку «Обзор папки», чтобы позволить пользователю сначала выбрать папку, а затем они могут запустить Window Explorer впоследствии].
Спасибо за любой совет. Черт возьми.
Комментарии:
1. @PhilW Не могли бы вы немного прояснить это, пожалуйста, вы надеетесь подключиться к Explorer.exe сам по себе, или вы хотите создать проводник, подобный файловому диалогу?
2. Захват пути к папке, как в ловушке и поместить его в клетку? Я не понимаю вопроса, пожалуйста, объясните.
3. Что не так с
TBrowseForFolder
?4. @Reallyethical: Возможно, я прошу невозможного, но я хотел бы предоставить пользователю возможности проводника Windows, но также необходимо прочитать и сохранить путь к папке, в которой работает пользователь.
5. @Cosmin: Спасибо за ответ; вы оказали большую помощь в моих предыдущих вопросах. Извините, что не использую понятный английский, я отредактировал вопрос, чтобы предоставить больше информации.
Ответ №1:
Я не знаю ваших точных потребностей, но, скорее всего, это не тот путь. Для получения подробной информации разработчик Microsoft Рэймонд Чен написал об этом сообщение в блоге. Что вам следует сделать, я думаю, это встроить элемент управления браузера Explorer в пользовательскую форму в вашем собственном приложении.
Комментарии:
1. Очень интересная ссылка, спасибо. После прочтения блога мне немного стыдно, что я даже подумывал о том, чтобы сделать то, что задал мой вопрос. Ответ принят с благодарностью.
Ответ №2:
Чтобы позволить пользователю просматривать и выбирать папку, я использую TOrtusShellBrowseFolder.
Ответ №3:
Разве вы не можете просто использовать TOpenDialog? Из справки Delphi:
Описание
TOpenDialog отображает модальное диалоговое окно Windows для выбора и открытия файлов. Диалоговое окно не отображается во время выполнения, пока оно не активировано вызовом метода Execute. Когда пользователь нажимает Открыть, диалоговое окно закрывается, и выбранный файл или файлы сохраняются в свойстве Files.
if OpenDialog1.Execute then
filename := OpenDialog1.FileName;
Комментарии:
1. Привет, Лесли, может дойти и до этого, но я надеялся получить свой пирог и съесть его, предоставив пользователю всю мощь проводника, а также отслеживать и сохранять путь к папке, который они использовали. Я думаю, вы правильно подметили, что это стандартная функция, с которой пользователи знакомы и понимают, как ее использовать, даже если для ее завершения им может потребоваться немного больше времени.