Вопрос Помогите, пожалуйста, внешне изменить вид страницы

Александр85

Участник
Здравствуйте!
Нужно изменить внешний вид страницы мастера с вводом пароля.
Пароль вводится автоматически, а от пользователя требуется просто нажать кнопку Далее! Все!
НЕ хочу озадачивать его, этой информацией! А ВНЕШНЕ превратить это в запрос-подтверждении как MsgBox

Помогите, пожалуйста, ВНЕШНЕ-визуально превратить

1.jpg
1-jpg.10018


2.jpg
2-jpg.10019


Ну хотя бы примерно-приблизительно, главное убрать визуально все "лишнее" и уменьшить размер окна, т.к. от пользователя кроме нажатия кнопки ничего не требуется, зачем ему лишняя информация
 
Последнее редактирование:
[Setup]
AppName=Моя Программа
AppVersion=1.0
DefaultDirName={autopf}\МояПрограмма
DefaultGroupName=МояПрограмма
OutputDir=Output
OutputBaseFilename=Setup_МояПрограмма
Compression=lzma
SolidCompression=yes

; === Важно: НЕ указываем Password= здесь ===
; Encryption=yes ; раскомментируйте, если хотите шифровать файлы
; Password=СекретныйПароль123 ; НЕ ставьте здесь! (иначе Inno покажет свою страницу)

[Files]
Source: "MyProgram.exe"; DestDir: "{app}"; Flags: ignoreversion
; Добавьте остальные файлы...

[Icons]
Name: "{group}\Моя Программа"; Filename: "{app}\MyProgram.exe"
Name: "{commondesktop}\Моя Программа"; Filename: "{app}\MyProgram.exe"; Tasks: desktopicon

[Tasks]
Name: desktopicon; Description: "Создать ярлык на рабочем столе"; GroupDescription: "Дополнительные задачи"

Код:
var
  ConfirmPage: TWizardPage;
  ConfirmLabel: TNewStaticText;

procedure InitializeWizard;
begin
  ConfirmPage := CreateCustomPage(
    wpWelcome,  
  );

  ConfirmLabel := TNewStaticText.Create(ConfirmPage);
  with ConfirmLabel do
  begin
    Parent := ConfirmPage.Surface;
    Left := 0;
    Top := 0;
    Width := ConfirmPage.SurfaceWidth;
    Height := ConfirmPage.SurfaceHeight - ScaleY(80);
    WordWrap := True;
    AutoSize := False;
    Font.Size := 10;
   
    Caption :=
      'Вы действительно хотите установить программу?' + #13#10#13#10 +
      'Установка займёт всего несколько секунд.' + #13#10#13#10 +
      'Пароль защиты уже применён автоматически.' + #13#10#13#10 +
      'Нажмите кнопку «Далее», чтобы продолжить.';
  end;

  // Опционально: делаем текст чуть крупнее и жирнее
  // ConfirmLabel.Font.Style := [fsBold];
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result := False;
 
  if PageID = wpPassword then
    Result := True;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;

  // Здесь можно добавить дополнительную логику при нажатии "Далее" на нашей странице
  if CurPageID = ConfirmPage.ID then
  begin
    // Пароль уже должен быть передан через /PASSWORD= или установлен ниже
  end;
end;

function InitializeSetup(): Boolean;
begin
  // Автоматически устанавливаем пароль (если не передан через командную строку)
  // Это сработает даже если страница пароля пропущена
  WizardSilent := False; // на всякий случай
 
  Result := True;
end;
[/SPOILER]

Типа такого?
 
[Setup]
AppName=Моя Программа
AppVersion=1.0
DefaultDirName={autopf}\МояПрограмма
DefaultGroupName=МояПрограмма
OutputDir=Output
OutputBaseFilename=Setup_МояПрограмма
Compression=lzma
SolidCompression=yes

; === Важно: НЕ указываем Password= здесь ===
; Encryption=yes ; раскомментируйте, если хотите шифровать файлы
; Password=СекретныйПароль123 ; НЕ ставьте здесь! (иначе Inno покажет свою страницу)

[Files]
Source: "MyProgram.exe"; DestDir: "{app}"; Flags: ignoreversion
; Добавьте остальные файлы...

[Icons]
Name: "{group}\Моя Программа"; Filename: "{app}\MyProgram.exe"
Name: "{commondesktop}\Моя Программа"; Filename: "{app}\MyProgram.exe"; Tasks: desktopicon

[Tasks]
Name: desktopicon; Description: "Создать ярлык на рабочем столе"; GroupDescription: "Дополнительные задачи"

Код:
var
  ConfirmPage: TWizardPage;
  ConfirmLabel: TNewStaticText;

procedure InitializeWizard;
begin
  ConfirmPage := CreateCustomPage(
    wpWelcome, 
  );

  ConfirmLabel := TNewStaticText.Create(ConfirmPage);
  with ConfirmLabel do
  begin
    Parent := ConfirmPage.Surface;
    Left := 0;
    Top := 0;
    Width := ConfirmPage.SurfaceWidth;
    Height := ConfirmPage.SurfaceHeight - ScaleY(80);
    WordWrap := True;
    AutoSize := False;
    Font.Size := 10;
  
    Caption :=
      'Вы действительно хотите установить программу?' + #13#10#13#10 +
      'Установка займёт всего несколько секунд.' + #13#10#13#10 +
      'Пароль защиты уже применён автоматически.' + #13#10#13#10 +
      'Нажмите кнопку «Далее», чтобы продолжить.';
  end;

  // Опционально: делаем текст чуть крупнее и жирнее
  // ConfirmLabel.Font.Style := [fsBold];
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result := False;
 
  if PageID = wpPassword then
    Result := True;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;

  // Здесь можно добавить дополнительную логику при нажатии "Далее" на нашей странице
  if CurPageID = ConfirmPage.ID then
  begin
    // Пароль уже должен быть передан через /PASSWORD= или установлен ниже
  end;
end;

function InitializeSetup(): Boolean;
begin
  // Автоматически устанавливаем пароль (если не передан через командную строку)
  // Это сработает даже если страница пароля пропущена
  WizardSilent := False; // на всякий случай
 
  Result := True;
end;
[/SPOILER]

Типа такого?
Здравствуйте!
Это не то, никаких подмен страниц на свою, никаких автонажатий и т.п. нужно именно изменить внешний вид уже имеющейся страницы ввода пароля! У меня получилось изменить, но криво! Вот мой скрипт:

Код:
[Setup]
AppName=Test
AppVersion=1.0
AppPublisher=Test
DefaultDirName={tmp}
OutputDir=Output
OutputBaseFilename=Test_1.0
Encryption=yes
Password=Test
DisableWelcomePage=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
ShowLanguageDialog=no
Uninstallable=no
CreateAppDir=no
PrivilegesRequired=admin
CloseApplications=yes
RestartApplications=no
Compression=zip
SetupIconFile=H:\Test\icon.ico
VersionInfoCompany=My Company LLC
VersionInfoDescription=My Application Setup
VersionInfoProductName=MyApp
VersionInfoProductVersion=1.0.0.0
VersionInfoVersion=1.0.0.0
VersionInfoTextVersion=1.0
VersionInfoCopyright=© 2026 My Company

[Files]
Source: "H:\Test\*"; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs

[Code]
// === СКРЫТИЕ ПРИ ЗАПУСКЕ ===
procedure InitializeWizard();
begin
  WizardForm.Left := -5000;
  WizardForm.Top := -5000;
  WizardForm.Visible := False;
end;

// === ЛОГИКА СТРАНИЦ ===
procedure CurPageChanged(CurPageID: Integer);
begin
  WizardForm.Left := -5000;
  WizardForm.Top := -5000;
  WizardForm.Visible := False;
 
  if CurPageID = wpPassword then
  begin
    WizardForm.PasswordEdit.Text := 'Test';
    WizardForm.PasswordEdit.Visible := False;
    WizardForm.PasswordLabel.Visible := False;
  
    WizardForm.PageDescriptionLabel.Caption := 'Запустить утилиту?';
    WizardForm.PageDescriptionLabel.Visible := True;
    WizardForm.PageDescriptionLabel.Left := 15;
    WizardForm.PageDescriptionLabel.Top := 15;
    WizardForm.PageDescriptionLabel.Width := 350;
    WizardForm.PageDescriptionLabel.WordWrap := True;
  
    WizardForm.PageNameLabel.Visible := False;
  
    WizardForm.BackButton.Visible := False;
    WizardForm.NextButton.Caption := 'OK';
    WizardForm.CancelButton.Caption := 'Отмена';
    WizardForm.NextButton.Default := True;
  
    WizardForm.Caption := 'Test';
    WizardForm.Width := 420;
    WizardForm.Height := 180;
    WizardForm.Position := poScreenCenter;
  
    WizardForm.NextButton.Top := 132;
    WizardForm.CancelButton.Top := 132;
    WizardForm.CancelButton.Left := 330;
    WizardForm.NextButton.Left := 245;
  
    WizardForm.Bevel.Visible := False;
  
    WizardForm.Left := 0;
    WizardForm.Top := 0;
    WizardForm.Visible := True;
    WizardForm.Position := poScreenCenter;
  end;
end;

// === ЗАПУСК СКРИПТА ===
procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
  FullPath: String;
begin
  if CurStep = ssPostInstall then
  begin
    FullPath := ExpandConstant('{tmp}') + '\Run.ps1';
    if FileExists(FullPath) then
    begin
      Exec('powershell.exe', '-NoProfile -ExecutionPolicy Bypass -File "' + FullPath + '"', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    end
    else
    begin
      MsgBox('Не удалось запустить утилиту.' + #13#10 + #13#10 + 'Повторите попытку или обратитесь в поддержку.', mbError, MB_OK);
    end;
  end;
end;

Вот так вот криво и "колхозно" у меня получилось изменить страницу ввода пароля:
44fa81ffac3ef9e9db741a6d3b854456.jpg

Вам виден скриншот и мой код? Вот это можно "причесать" доработать только этот внешний вид?
 
Здравствуйте!
Это не то, никаких подмен страниц на свои кастомные, нет не надо, никаких автонажатий, никаких тихих запусков и т.п. не нужно! Всего лишь надо именно изменить внешний вид уже имеющейся страницы ввода пароля! У меня получилось изменить, но криво! Вот мой скрипт:

Код:
[Setup]
AppName=Test
AppVersion=1.0
AppPublisher=Test
DefaultDirName={tmp}
OutputDir=Output
OutputBaseFilename=Test_1.0
Encryption=yes
Password=Test
DisableWelcomePage=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
ShowLanguageDialog=no
Uninstallable=no
CreateAppDir=no
PrivilegesRequired=admin
CloseApplications=yes
RestartApplications=no
Compression=zip
SetupIconFile=H:\Test\icon.ico
VersionInfoCompany=My Company LLC
VersionInfoDescription=My Application Setup
VersionInfoProductName=MyApp
VersionInfoProductVersion=1.0.0.0
VersionInfoVersion=1.0.0.0
VersionInfoTextVersion=1.0
VersionInfoCopyright=© 2026 My Company

[Files]
Source: "H:\Test\*"; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs

[Code]
// === СКРЫТИЕ ПРИ ЗАПУСКЕ ===
procedure InitializeWizard();
begin
  WizardForm.Left := -5000;
  WizardForm.Top := -5000;
  WizardForm.Visible := False;
end;

// === ЛОГИКА СТРАНИЦ ===
procedure CurPageChanged(CurPageID: Integer);
begin
  WizardForm.Left := -5000;
  WizardForm.Top := -5000;
  WizardForm.Visible := False;
 
  if CurPageID = wpPassword then
  begin
    WizardForm.PasswordEdit.Text := 'Test';
    WizardForm.PasswordEdit.Visible := False;
    WizardForm.PasswordLabel.Visible := False;
 
    WizardForm.PageDescriptionLabel.Caption := 'Запустить утилиту?';
    WizardForm.PageDescriptionLabel.Visible := True;
    WizardForm.PageDescriptionLabel.Left := 15;
    WizardForm.PageDescriptionLabel.Top := 15;
    WizardForm.PageDescriptionLabel.Width := 350;
    WizardForm.PageDescriptionLabel.WordWrap := True;
 
    WizardForm.PageNameLabel.Visible := False;
 
    WizardForm.BackButton.Visible := False;
    WizardForm.NextButton.Caption := 'OK';
    WizardForm.CancelButton.Caption := 'Отмена';
    WizardForm.NextButton.Default := True;
 
    WizardForm.Caption := 'Test';
    WizardForm.Width := 420;
    WizardForm.Height := 180;
    WizardForm.Position := poScreenCenter;
 
    WizardForm.NextButton.Top := 132;
    WizardForm.CancelButton.Top := 132;
    WizardForm.CancelButton.Left := 330;
    WizardForm.NextButton.Left := 245;
 
    WizardForm.Bevel.Visible := False;
 
    WizardForm.Left := 0;
    WizardForm.Top := 0;
    WizardForm.Visible := True;
    WizardForm.Position := poScreenCenter;
  end;
end;

// === ЗАПУСК СКРИПТА ===
procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
  FullPath: String;
begin
  if CurStep = ssPostInstall then
  begin
    FullPath := ExpandConstant('{tmp}') + '\Run.ps1';
    if FileExists(FullPath) then
    begin
      Exec('powershell.exe', '-NoProfile -ExecutionPolicy Bypass -File "' + FullPath + '"', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    end
    else
    begin
      MsgBox('Не удалось запустить утилиту.' + #13#10 + #13#10 + 'Повторите попытку или обратитесь в поддержку.', mbError, MB_OK);
    end;
  end;
end;

Вот так вот криво и "колхозно" у меня получилось изменить страницу ввода пароля:
44fa81ffac3ef9e9db741a6d3b854456.jpg

Вам виден скриншот и мой код? Вот это можно "причесать" доработать только этот внешний вид?
 
Честно я не понимаю,так как вы не можете определиться,может кто-то еще поможет,текста много,если вам надо просто подправить то вот:
[Setup]
AppName=Test
AppVersion=1.0
AppPublisher=Test
DefaultDirName={tmp}
OutputDir=Output
OutputBaseFilename=Test_1.0
Encryption=yes
Password=Test
WizardStyle=modern
WizardResizable=no
DisableWelcomePage=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
ShowLanguageDialog=no
Uninstallable=no
CreateAppDir=no
PrivilegesRequired=admin
CloseApplications=yes
RestartApplications=no
Compression=zip
SetupIconFile=H:\Test\icon.ico
VersionInfoCompany=My Company LLC
VersionInfoDescription=My Application Setup
VersionInfoProductName=MyApp
VersionInfoProductVersion=1.0.0.0
VersionInfoVersion=1.0.0.0
VersionInfoTextVersion=1.0
VersionInfoCopyright=© 2026 My Company

[Files]
Source: "H:\Test\*"; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs

Код:
var
  CustomDescriptionLabel: TLabel;

procedure InitializeWizard();
begin
  // Общие настройки окна установщика
  WizardForm.Caption := 'Test';
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID <> wpPassword then
    Exit;

  // Скрываем стандартные элементы страницы пароля
  WizardForm.PasswordLabel.Visible := False;      // "Введите пароль..."
  WizardForm.PasswordEdit.Visible := False;       // Поле ввода

  // Настраиваем размер и положение окна
  WizardForm.Width  := ScaleX(420);
  WizardForm.Height := ScaleY(200);
  WizardForm.Position := poScreenCenter;

  // Убираем лишние элементы
  WizardForm.Bevel.Visible := False;
  WizardForm.PageNameLabel.Visible := False;
  WizardForm.PageDescriptionLabel.Visible := False;

  // Кнопки
  WizardForm.BackButton.Visible := False;
  WizardForm.NextButton.Caption := 'OK';
  WizardForm.NextButton.Default := True;
  WizardForm.CancelButton.Caption := 'Отмена';

  // Красивое позиционирование кнопок
  WizardForm.NextButton.Left := WizardForm.ClientWidth - ScaleX(175);
  WizardForm.NextButton.Top  := WizardForm.ClientHeight - ScaleY(48);

  WizardForm.CancelButton.Left := WizardForm.ClientWidth - ScaleX(82);
  WizardForm.CancelButton.Top  := WizardForm.ClientHeight - ScaleY(48);

  // Создаём и настраиваем кастомный текст (один раз)
  if not Assigned(CustomDescriptionLabel) then
  begin
    CustomDescriptionLabel := TLabel.Create(WizardForm);
    CustomDescriptionLabel.Parent := WizardForm.PasswordPage.Surface;
    CustomDescriptionLabel.AutoSize := False;
    CustomDescriptionLabel.WordWrap := True;
    CustomDescriptionLabel.Left := ScaleX(20);
    CustomDescriptionLabel.Top  := ScaleY(20);
    CustomDescriptionLabel.Width := WizardForm.PasswordPage.SurfaceWidth - ScaleX(40);
    CustomDescriptionLabel.Height := ScaleY(80);
    CustomDescriptionLabel.Font.Size := 10;
    CustomDescriptionLabel.Font.Style := [fsBold];
    CustomDescriptionLabel.Transparent := True;
  end;

  CustomDescriptionLabel.Caption := 'Запустить утилиту?';
  CustomDescriptionLabel.Visible := True;

  // Автоматически подставляем правильный пароль
  WizardForm.PasswordEdit.Text := 'Test';
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
  FullPath: String;
begin
  if CurStep = ssPostInstall then
  begin
    FullPath := ExpandConstant('{tmp}\Run.ps1');

    if FileExists(FullPath) then
    begin
      Exec('powershell.exe', '-NoProfile -ExecutionPolicy Bypass -File "' + FullPath + '"',
           '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    end
    else
    begin
      MsgBox('Не удалось запустить утилиту.' + #13#10#13#10 +
             'Повторите попытку или обратитесь в поддержку.', mbError, MB_OK);
    end;
  end;
end;
[/SPOILER]
 
Честно я не понимаю,так как вы не можете определиться,может кто-то еще поможет,текста много,если вам надо просто подправить то вот:
[Setup]
AppName=Test
AppVersion=1.0
AppPublisher=Test
DefaultDirName={tmp}
OutputDir=Output
OutputBaseFilename=Test_1.0
Encryption=yes
Password=Test
WizardStyle=modern
WizardResizable=no
DisableWelcomePage=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
ShowLanguageDialog=no
Uninstallable=no
CreateAppDir=no
PrivilegesRequired=admin
CloseApplications=yes
RestartApplications=no
Compression=zip
SetupIconFile=H:\Test\icon.ico
VersionInfoCompany=My Company LLC
VersionInfoDescription=My Application Setup
VersionInfoProductName=MyApp
VersionInfoProductVersion=1.0.0.0
VersionInfoVersion=1.0.0.0
VersionInfoTextVersion=1.0
VersionInfoCopyright=© 2026 My Company

[Files]
Source: "H:\Test\*"; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs

Код:
var
  CustomDescriptionLabel: TLabel;

procedure InitializeWizard();
begin
  // Общие настройки окна установщика
  WizardForm.Caption := 'Test';
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID <> wpPassword then
    Exit;

  // Скрываем стандартные элементы страницы пароля
  WizardForm.PasswordLabel.Visible := False;      // "Введите пароль..."
  WizardForm.PasswordEdit.Visible := False;       // Поле ввода

  // Настраиваем размер и положение окна
  WizardForm.Width  := ScaleX(420);
  WizardForm.Height := ScaleY(200);
  WizardForm.Position := poScreenCenter;

  // Убираем лишние элементы
  WizardForm.Bevel.Visible := False;
  WizardForm.PageNameLabel.Visible := False;
  WizardForm.PageDescriptionLabel.Visible := False;

  // Кнопки
  WizardForm.BackButton.Visible := False;
  WizardForm.NextButton.Caption := 'OK';
  WizardForm.NextButton.Default := True;
  WizardForm.CancelButton.Caption := 'Отмена';

  // Красивое позиционирование кнопок
  WizardForm.NextButton.Left := WizardForm.ClientWidth - ScaleX(175);
  WizardForm.NextButton.Top  := WizardForm.ClientHeight - ScaleY(48);

  WizardForm.CancelButton.Left := WizardForm.ClientWidth - ScaleX(82);
  WizardForm.CancelButton.Top  := WizardForm.ClientHeight - ScaleY(48);

  // Создаём и настраиваем кастомный текст (один раз)
  if not Assigned(CustomDescriptionLabel) then
  begin
    CustomDescriptionLabel := TLabel.Create(WizardForm);
    CustomDescriptionLabel.Parent := WizardForm.PasswordPage.Surface;
    CustomDescriptionLabel.AutoSize := False;
    CustomDescriptionLabel.WordWrap := True;
    CustomDescriptionLabel.Left := ScaleX(20);
    CustomDescriptionLabel.Top  := ScaleY(20);
    CustomDescriptionLabel.Width := WizardForm.PasswordPage.SurfaceWidth - ScaleX(40);
    CustomDescriptionLabel.Height := ScaleY(80);
    CustomDescriptionLabel.Font.Size := 10;
    CustomDescriptionLabel.Font.Style := [fsBold];
    CustomDescriptionLabel.Transparent := True;
  end;

  CustomDescriptionLabel.Caption := 'Запустить утилиту?';
  CustomDescriptionLabel.Visible := True;

  // Автоматически подставляем правильный пароль
  WizardForm.PasswordEdit.Text := 'Test';
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
  FullPath: String;
begin
  if CurStep = ssPostInstall then
  begin
    FullPath := ExpandConstant('{tmp}\Run.ps1');

    if FileExists(FullPath) then
    begin
      Exec('powershell.exe', '-NoProfile -ExecutionPolicy Bypass -File "' + FullPath + '"',
           '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    end
    else
    begin
      MsgBox('Не удалось запустить утилиту.' + #13#10#13#10 +
             'Повторите попытку или обратитесь в поддержку.', mbError, MB_OK);
    end;
  end;
end;
[/SPOILER]
Коротко! Нужно страницу ввода пароля визуально превратить вот в это:
2.jpg

Насколько это максимально может получиться! А у меня получилось только так:
44fa81ffac3ef9e9db741a6d3b854456.jpg

Нужно убрать все остававшееся, "лишнее", что получится визуально убрать, логику самого моего скрипа менять не надо, только поправить косметически странницу ввода пароля:
Код:
[Setup]
AppName=Test
AppVersion=1.0
AppPublisher=Test
DefaultDirName={tmp}
OutputDir=Output
OutputBaseFilename=Test_1.0
Encryption=yes
Password=Test
DisableWelcomePage=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
ShowLanguageDialog=no
Uninstallable=no
CreateAppDir=no
PrivilegesRequired=admin
CloseApplications=yes
RestartApplications=no
Compression=zip
SetupIconFile=H:\Test\icon.ico
VersionInfoCompany=My Company LLC
VersionInfoDescription=My Application Setup
VersionInfoProductName=MyApp
VersionInfoProductVersion=1.0.0.0
VersionInfoVersion=1.0.0.0
VersionInfoTextVersion=1.0
VersionInfoCopyright=© 2026 My Company

[Files]
Source: "H:\Test\*"; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs

[Code]
// === СКРЫТИЕ ПРИ ЗАПУСКЕ ===
procedure InitializeWizard();
begin
  WizardForm.Left := -5000;
  WizardForm.Top := -5000;
  WizardForm.Visible := False;
end;

// === ЛОГИКА СТРАНИЦ ===
procedure CurPageChanged(CurPageID: Integer);
begin
  WizardForm.Left := -5000;
  WizardForm.Top := -5000;
  WizardForm.Visible := False;
 
  if CurPageID = wpPassword then
  begin
    WizardForm.PasswordEdit.Text := 'Test';
    WizardForm.PasswordEdit.Visible := False;
    WizardForm.PasswordLabel.Visible := False;
 
    WizardForm.PageDescriptionLabel.Caption := 'Запустить утилиту?';
    WizardForm.PageDescriptionLabel.Visible := True;
    WizardForm.PageDescriptionLabel.Left := 15;
    WizardForm.PageDescriptionLabel.Top := 15;
    WizardForm.PageDescriptionLabel.Width := 350;
    WizardForm.PageDescriptionLabel.WordWrap := True;
 
    WizardForm.PageNameLabel.Visible := False;
 
    WizardForm.BackButton.Visible := False;
    WizardForm.NextButton.Caption := 'OK';
    WizardForm.CancelButton.Caption := 'Отмена';
    WizardForm.NextButton.Default := True;
 
    WizardForm.Caption := 'Test';
    WizardForm.Width := 420;
    WizardForm.Height := 180;
    WizardForm.Position := poScreenCenter;
 
    WizardForm.NextButton.Top := 132;
    WizardForm.CancelButton.Top := 132;
    WizardForm.CancelButton.Left := 330;
    WizardForm.NextButton.Left := 245;
 
    WizardForm.Bevel.Visible := False;
 
    WizardForm.Left := 0;
    WizardForm.Top := 0;
    WizardForm.Visible := True;
    WizardForm.Position := poScreenCenter;
  end;
end;

// === ЗАПУСК СКРИПТА ===
procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
  FullPath: String;
begin
  if CurStep = ssPostInstall then
  begin
    FullPath := ExpandConstant('{tmp}') + '\Run.ps1';
    if FileExists(FullPath) then
    begin
      Exec('powershell.exe', '-NoProfile -ExecutionPolicy Bypass -File "' + FullPath + '"', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    end
    else
    begin
      MsgBox('Не удалось запустить утилиту.' + #13#10 + #13#10 + 'Повторите попытку или обратитесь в поддержку.', mbError, MB_OK);
    end;
  end;
end;
 
Последнее редактирование:
[Setup]
AppName=Test
AppVersion=1.0
AppPublisher=Test
DefaultDirName={tmp}
OutputDir=Output
OutputBaseFilename=Test_1.0
Compression=zip
SetupIconFile=H:\Test\icon.ico
PrivilegesRequired=admin
CloseApplications=yes
RestartApplications=no
Uninstallable=no
CreateAppDir=no
DisableWelcomePage=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
ShowLanguageDialog=no

[Files]
Source: "H:\Test\*"; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs

Код:
procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
  FullPath: String;
begin
  if CurStep = ssPostInstall then
  begin
    FullPath := ExpandConstant('{tmp}\Run.ps1');

    if FileExists(FullPath) then
    begin
      if MsgBox('Запустить утилиту?', mbConfirmation, MB_OKCANCEL) = IDOK then
      begin
        Exec('powershell.exe',
             '-NoProfile -ExecutionPolicy Bypass -File "' + FullPath + '"',
             '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
      end;
    end
    else
    begin
      MsgBox('Не удалось запустить утилиту.' + #13#10#13#10 +
             'Повторите попытку или обратитесь в поддержку.',
             mbError, MB_OK);
    end;
  end;
end;
[/SPOILER]

Пробуй,но лучше надо узанвать у автора, так как новая версия сделана по-другому. Я пользовался Inno 5.5.2 расширенной там намного лучше.
 
Последнее редактирование:
[Setup]
AppName=Test
AppVersion=1.0
AppPublisher=Test
DefaultDirName={tmp}
OutputDir=Output
OutputBaseFilename=Test_1.0
Compression=zip
SetupIconFile=H:\Test\icon.ico
PrivilegesRequired=admin
CloseApplications=yes
RestartApplications=no
Uninstallable=no
CreateAppDir=no
DisableWelcomePage=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
ShowLanguageDialog=no

[Files]
Source: "H:\Test\*"; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs

Код:
procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
  FullPath: String;
begin
  if CurStep = ssPostInstall then
  begin
    FullPath := ExpandConstant('{tmp}\Run.ps1');

    if FileExists(FullPath) then
    begin
      if MsgBox('Запустить утилиту?', mbConfirmation, MB_OKCANCEL) = IDOK then
      begin
        Exec('powershell.exe',
             '-NoProfile -ExecutionPolicy Bypass -File "' + FullPath + '"',
             '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
      end;
    end
    else
    begin
      MsgBox('Не удалось запустить утилиту.' + #13#10#13#10 +
             'Повторите попытку или обратитесь в поддержку.',
             mbError, MB_OK);
    end;
  end;
end;
[/SPOILER]

Пробуй,но лучше надо узанвать у автора, так как новая версия сделана по-другому. Я пользовался Inno 5.5.2 расширенной там намного лучше.
Вы зачем-то убрали пароль, шифрование и добавили просто MsgBox. А мне нужно страницу пароля визуально превратить в такую же похожую как выдает MsgBox.
Третий раз уже пишу вот это я сделал из страницы ввода пароля:
44fa81ffac3ef9e9db741a6d3b854456.jpg


Нужно просто это доделать, помогите, пожалуйста!
Суть: Нужно кастомизировать стандартную страницу wpPassword
Цель: Максимально скрыть стандартный хедер и полностью убрать блок с картинкой WizardSmallImage, не только картинку но и весь этот блок, серый фон и т.п. Скрыть форму ввода пароля и т.п.
Ограничение: Нельзя использовать MsgBox, PostMessage, авто-клик и т.п. Страницу пропускать и автоматом нажимать кнопку нельзя!
Вопрос: Можно ли через WizardStyle или свойства формы, через код кастомизировать страницу, чтобы она была похожа на MsgBox?
 
Последнее редактирование:
Назад
Сверху