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

Как сбросить путь по умолчанию для диалогов открытия и сохранения файлов в Windows

Delphi , Синтаксис , Справочник по API-функциям

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

Где Windows сохраняет информацию о последнем использованном пути?

Операционная система Windows сохраняет информацию о последнем использованном пути в реестре. Для разных версий Windows пути хранения могут отличаться. Например, в Windows XP используется ключ:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU

В более новых версиях Windows, включая Windows 10, информация хранится в ключах:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRULegacy

Формат хранения данных включает имя исполняемого файла и информацию о последнем посещенном пути. В случае Windows XP данные представлены в формате UTF-16LE, а в более новых версиях используется ItemIdList.

Как сбросить путь по умолчанию?

Для сброса пути по умолчанию необходимо найти и удалить соответствующие записи в реестре. В зависимости от версии Windows, это будет значение MRUList или MRUListEx. Данные для этих значений содержат информацию о последнем использованном пути, связанную с конкретным исполняемым файлом.

Пример кода для сброса пути в Delphi:

uses
  Registry;

procedure ResetDefaultOpenSavePath(const ExeName: string);
var
  Reg: TRegistry;
  Path: string;
begin
  Reg := TRegistry.Create(KEY_READ or KEY_WRITE);
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Path := 'Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU';
    if Reg.KeyExists(Path) then
    begin
      // Находим значение, соответствующее имени исполняемого файла
      var ValueName: string;
      for ValueName in Reg.GetKeyNames(Path) do
        if Pos(ExeName, Reg.GetStringValue(Path, ValueName)) = 1 then
          Reg.DeleteKey(Path, ValueName);
    end;
  finally
    Reg.Free;
  end;
end;

Этот код создает функцию ResetDefaultOpenSavePath, которая принимает имя исполняемого файла и удаляет соответствующие записи из реестра, связанные с этим именем.

Заключение

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

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

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


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

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




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


:: Главная :: Справочник по API-функциям ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-13 19:13:42/0.0053219795227051/1