1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

корень диска

Тема в разделе "Inno Setup", создана пользователем Letter, 17 янв 2018.

  1. Новичок

    Регистрация:
    27 дек 2017
    Сообщения:
    13
    Симпатии:
    0
    Пол:
    Мужской
    Подскажите как переделать скрипт, нужно что бы при установки на системный диск была ошибка.
    Нашел скрип, там ошибка если устанавливать конкретно в корень, а мне нужно что бы ошибка выскакивала когда пытаются установить на системный диск.

    [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;
     
  2. Ветеран Супер модератор

    Регистрация:
    5 мар 2016
    Сообщения:
    360
    Симпатии:
    388
    Пол:
    Мужской
    Letter, может так:

    Код (Inno):
    [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 нравится это.
  3. Новичок

    Регистрация:
    27 дек 2017
    Сообщения:
    13
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо! А еще подскажите, сообщение "Установка на системный диск запрещена" нужно перевести ну хотя бы на русский и английский, и когда пользователь в начале установки выбрал язык, например английский, то и это сообщение было на английском. Куда перевод надо добавить?
     
  4. Ветеран

    Регистрация:
    18 авг 2011
    Сообщения:
    204
    Симпатии:
    93
    Код (Inno):

    [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;
     
     
    Letter нравится это.
  5. Новичок

    Регистрация:
    27 дек 2017
    Сообщения:
    13
    Симпатии:
    0
    Пол:
    Мужской
    От души:bye:
     

Поделиться этой страницей