корень диска

Letter

Новичок
Подскажите как переделать скрипт, нужно что бы при установки на системный диск была ошибка.
Нашел скрип, там ошибка если устанавливать конкретно в корень, а мне нужно что бы ошибка выскакивала когда пытаются установить на системный диск.

[Code]
var
text: TLabel;

function NextButtonClick(CurPageID: Integer): Boolean;
var
i, n: Integer;
str: string;
begin
Result:= True;
if CurPageID = wpSelectDir then
begin
str:= WizardForm.DirEdit.Text;
for i:= 1 to Length(str) do if str = '\' then n:= n + 1;
if (n = 1) and (Pos(ExpandConstant('{sd}'), WizardForm.DirEdit.Text) > 0) then
begin
text.Caption:= 'Внимание, в корень системного диска, устанавливать нельзя.';
Result:= False;
end
else text.Caption:= '';
end;
end;

procedure InitializeWizard();
begin
text:= TLabel.Create(WizardForm);
with text do
begin
SetBounds(WizardForm.DirEdit.Left,120,300,100);
AutoSize:= True;
Font.Style:= [fsBold];
Font.Color:= clRed;
Parent:= WizardForm.SelectDirPage;
end;
end;
 

Nemko

Дилетант
Модератор
Letter, может так:

Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={sd}\My Application

[Code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result:=True;
if CurPageID = wpSelectDir then begin
  if ExpandConstant('{sd}') <> Copy(WizardDirValue, 0, 2) then Result:=True else begin
    MsgBox('Установка на системный диск запрещена', mbInformation, MB_OK);
    Result:=False;
  end;
 end;
end;
 

Letter

Новичок
Спасибо! А еще подскажите, сообщение "Установка на системный диск запрещена" нужно перевести ну хотя бы на русский и английский, и когда пользователь в начале установки выбрал язык, например английский, то и это сообщение было на английском. Куда перевод надо добавить?
 

EvilAlex

Старожил
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={sd}\My Application

[Languages]
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[CustomMessages]
russian.NotCoreMSG=Установка на системный диск запрещена.
english.NotCoreMSG=Installation on system drive prohibited.

[Code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result:=True;
if CurPageID = wpSelectDir then begin
  if ExpandConstant('{sd}') <> Copy(WizardDirValue, 0, 2) then Result:=True else begin
    MsgBox(ExpandConstant('{cm:NotCoreMSG}'), mbInformation, MB_OK);
    Result:=False;
  end;
 end;
end;
 
Сверху