Цитата 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;