Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 129
Благодарности: 76

Профиль | Отправить PM | Цитировать


Цитата ksunechkin:
все хорошо, но вот если у disk:\program files\ убрать последний слэш, т.е. disk:\program files - все равно дает установить( »
Это защита от "упёртого" юзера, который любой ценой будет пытаться установить в эту папку?
Ну раз надо, то ещё раз пофиксим
исправленный пример
Код: Выделить весь код
[Setup]
AppName=My Program  
AppVerName=My Program
DefaultDirName={sd}\My Program
OutputDir=.
OutputBaseFilename=test

[code]
procedure MyFunction(Sender: TObject);
var
  S: String;
begin
  S := ExtractFilePath(WizardForm.DirEdit.Text);
  SetLength(S, Length(S)-1);

  if IsWin64 then
  begin
    if (Pos(ExpandConstant('{pf32}'), S) > 0) or (Pos(ExpandConstant('{pf64}'), S) > 0) then
    begin
      MsgBox('Программу нельзя устанавливать в' + #13#10 + S, mbInformation, MB_OK);
      WizardForm.DirEdit.Text := ExpandConstant('{sd}\My Program');
    end;
  end else
  if Pos(ExpandConstant('{pf}'), S) > 0 then
  begin
    MsgBox('Программу нельзя устанавливать в' + #13#10 + S, mbInformation, MB_OK);
    WizardForm.DirEdit.Text := ExpandConstant('{sd}\My Program');
  end;
  WizardForm.DirEdit.Text := AddBackSlash(WizardForm.DirEdit.Text);
end;

procedure InitializeWizard();
begin
  WizardForm.DirEdit.OnChange := @MyFunction;
end;

Последний раз редактировалось serg aka lain, 23-12-2010 в 22:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:27, 23-12-2010 | #223