Получите путь в wpSelectDir до того, как будет установлено {приложение} Inno Setup

Я хотел бы получить путь к каталогу установки, когда пользователь нажимает кнопку Далее, когда я нахожусь в wpSelectDir Inno Setup.

Мне нужно проверить путь, потому что мне нужно проверить путь, и если он не правильный, я не позволю пользователю продолжить.

Моя проблема в том, что постоянная {app} еще не установлен, потому что он будет установлен после wpSelectDir и я все еще в.

2 ответа

Решение

Использование WizardDirValue функция поддержки:

Возвращает текущее содержимое элемента управления для редактирования на странице выбора места назначения мастера.

В отличие от ExpandConstant('{app}')эта функция не завершится с ошибкой, если вызывается после показа мастера, но до того, как пользователь выберет каталог. Скорее, он вернет имя каталога по умолчанию.


Это более идиоматично, чем WizardForm.DirEdit.Text,

Хотя внутренне это делает почти то же самое:

RemoveBackslashUnlessRoot(WizardForm.DirEdit.Text)

См. Также Как найти выбранный пользователем путь установки в Inno Setup?

Вы можете сделать что-то вроде этого....

procedure onDirChange(Sender: TObject);
var
    currentDir: String;
begin
    currentDir := WizardForm.DirEdit.Text;
    // your validation goes here....
end;

procedure InitializeWizard;
begin
    WizardForm.DirEdit.onChange := @onDirChange;
end;

WizardForm.DirEdit.Text возвращает текущее значение в DirEdit Текстовое окно. Процедура onDirChange вызывается каждый раз, когда изменяется текст в текстовом поле dirEdit. Вы можете использовать это значение для выполнения ваших проверок.

Другие вопросы по тегам