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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 8]

Аватара для El Sanchez

Ветеран


Contributor


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


Конфигурация

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


Изменения
Автор: El Sanchez
Дата: 22-10-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

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


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

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


roman_kudin@vk, Как скин прикрутить
Скрытый текст
Код: Выделить весь код
[Files]
Source: "Tiger.cjstyles"; DestDir: {tmp}; Flags: dontcopy
Source: "ISSkin.dll"; DestDir: {tmp}; Flags: dontcopy
Source: "1.bmp"; DestName: "1.bmp"; Flags: dontcopy
Source: "2.bmp"; DestName: "2.bmp"; Flags: dontcopy

[ Code]
procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';

function InitializeSetup: Boolean;
begin
  ExtractTemporaryFile('isskin.dll');
  ExtractTemporaryFile('Tiger.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
  Result:=True;
end;

procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin;
end;

Отправлено: 00:33, 23-02-2015 | #181



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


roman_kudin@vk, Собственно прикрутить к чему? https://yadi.sk/d/n-QxYlq8eqTzd думаю добавить сможете в свой основной код сами
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:07, 23-02-2015 | #182


Новый участник


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

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


kotyarko@fb, Большое спасибо за пример, всё заработало как надо.

В итоге для себя переделал в следующий вид (может кому-то тоже понадобится)
Код

Код: Выделить весь код
const
BASS_ACTIVE_STALLED = 2;
//Однократное воспроизведение сигнала о завершении установки
Procedure CurPageChanged(CurPageID: Integer);
var
mp3Name: string; i : Integer;

  begin
   if CurPageID = wpFinished then
    begin
     if BASS_Stop then  //останавливаем музыку, которая играла до этого
      begin
       ExtractTemporaryFile('Complete.mp3');  //загружаем новую мелодию
       mp3Name := ExpandConstant('{tmp}\Complete.mp3');
       BASS_Init(-1, 44100, 0, 0, 0);
       i := BASS_StreamCreateFile(FALSE, PAnsiChar(mp3Name), 0, 0, BASS_ACTIVE_STALLED);
       BASS_Start();
       BASS_SETVolume(70)          // Уровень стартовой громкости (от 0 до 100)
       BASS_ChannelPlay(i, False);
      end;
    end;
  end;
//Однократное воспроизведение сигнала о завершении установки

Отправлено: 15:26, 23-02-2015 | #183


Новый участник


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

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


И последнее, ребят как тут переместить кнопку "Browse" и строку вЬІбора адреса?

Скрытый текст

Отправлено: 18:15, 23-02-2015 | #184


Аватара для Dodakaedr

Ветеран


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

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


roman_kudin@vk, задайте параметры размещения таким элементам как WizardForm.DirEdit и WizardForm.DirBrowseButton
Код: Выделить весь код
[setup]
AppName=MyProg
AppVerName=1.1
DefaultDirName={pf}\MyProg

[CODE]
procedure InitializeWizard();
begin
  WizardForm.DirEdit.SetBounds(ScaleX(5), ScaleY(150), ScaleX(WizardForm.DirEdit.Width), ScaleY(WizardForm.DirEdit.Height));
  WizardForm.DirBrowseButton.SetBounds(ScaleX(WizardForm.DirEdit.Width + 10), ScaleY(150), ScaleX(WizardForm.DirBrowseButton.Width), ScaleY(WizardForm.DirBrowseButton.Height));
end;

-------
Inno Setup 5 Ultra Unicode


Последний раз редактировалось Dodakaedr, 23-02-2015 в 20:18.

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

Отправлено: 19:43, 23-02-2015 | #185


Новый участник


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

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


Цитата Dodakaedr:
[setup]
AppName=MyProg
AppVerName=1.1
DefaultDirName={pf}\MyProg
[code]
procedure InitializeWizard();
begin
WizardForm.DirEdit.SetBounds(ScaleX(5), ScaleY(150), ScaleX(WizardForm.DirEdit.Width), ScaleY(WizardForm.DirEdit.Height));
WizardForm.DirBrowseButton.SetBounds(ScaleX(WizardForm.DirEdit.Width + 10), ScaleY(150), ScaleX(WizardForm.DirBrowseButton.Width), ScaleY(WizardForm.DirBrowseButton.Height));
end; »
Подскажите мне на будущее, просто хочу разобраться, где вЬІ берете код самой кнопки "Browse", точнее ее название?

И если я сделал скин, все отображаеться, все нормально, но.. CheckBox я сменил, вместо галочки у меня другой символ, при принятии соглашения лицензии работает, а при вЬІборе компонентов нет.

Отправлено: 21:23, 23-02-2015 | #186


Аватара для Dodakaedr

Ветеран


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

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


Цитата:
Подскажите мне на будущее, просто хочу разобраться, где вЬІ берете код самой кнопки "Browse", точнее ее название?
Сейчас просто знаю. А раньше так как я пользуюсь расширенной inno в редакторе форм при наведении курсора на элемент показывает его название.

-------
Inno Setup 5 Ultra Unicode

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

Отправлено: 22:36, 23-02-2015 | #187


Аватара для ROMKA-1977

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


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

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


Цитата roman_kudin@vk:
У кого есть исходник полного изменения вида инсталлятора, поделитесь пожалуйста. »
ты об этом?
читать дальше »

[Setup]
SourceDir=.
OutputDir=Setup
AppName=Test
AppVerName=Test
DefaultDirName={pf}\Test
DefaultGroupName=Test
OutputBaseFilename=Setup
AllowNoIcons=true
ShowTasksTreeLines=true

[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl

[Files]
Source: {win}\help\*; DestDir: {app}\Files; Flags: external recursesubdirs createallsubdirs;

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}

Name: Soft; Description: Установить дополнительное программное обеспечение; GroupDescription: Дополнительное программное обеспечение:; Flags: unchecked
Name: Soft/DirectX; Description: Установить Microsoft DirectX; Flags: unchecked
Name: Soft/vcredist_x86; Description: Установить Microsoft Visual С++ 2005 Redistributable; Flags: unchecked
Name: Soft/vcredist_x64; Description: Установить Microsoft Visual С++ 2005 Redistributable x64; Flags: unchecked; Check: IsWin64

[CustomMessages]
ru.WizardDeltaWidthInvalid=Прирост формы по ширине должен быть в диапазоне от %1 до %2
ru.WizardDeltaHeightInvalid=Прирост формы по высоте должен быть в диапазоне от %1 до %2
ru.WizardWidthInvalid=Ширина формы должна быть в диапазоне от 0 до %1
ru.WizardHeightInvalid=Высота формы должна быть в диапазоне от 0 до %1

[code]
#define A = (Defined UNICODE) ? "W" : "A"
const
SPI_GETWORKAREA = $0030;

// Large Integer Functions
function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer; external 'MulDiv@kernel32.dll stdcall';
// Configuration Reference
function SystemParametersInfo(uiAction, uiParam: UINT; var pvParam: TRect; fWinIni: UINT): BOOL; external 'SystemParametersInfo{#A}@user32.dll stdcall';

////////////////////////////////////////////////////////////////////////////
procedure RecreateWizardForm(const cx, cy: Longint; const IsDelta: Boolean);
// IsDelta : True - cx, cy is delta width/height, False - cx, cy is width/height
// cx......: delta width / width
// cy......: delta height / height
var
rt: TRect;
dx, dy: Longint;
begin
{ get deltas }
if not IsDelta then
begin
cx := cx - WizardForm.Width;
cy := cy - WizardForm.Height;
end;

{ check deltas }
if SystemParametersInfo(SPI_GETWORKAREA, 0, rt, 0) then
begin
{ check delta width }
if (cx < -WizardForm.Width) or (cx > rt.Right - WizardForm.Width) then
begin
if IsDelta then
MsgBox(FmtMessage(CustomMessage('WizardDeltaWidthInvalid'), [IntToStr(-WizardForm.Width), IntToStr(rt.Right - WizardForm.Width)]), mbError, MB_OK)
else
MsgBox(FmtMessage(CustomMessage('WizardWidthInvalid'), [IntToStr(rt.Right)]), mbError, MB_OK);
Exit;
end;

{ check delta height }
if (cy < -WizardForm.Height) or (cy > rt.Bottom - WizardForm.Height) then
begin
if IsDelta then
MsgBox(FmtMessage(CustomMessage('WizardDeltaHeightInvalid'), [IntToStr(-WizardForm.Height), IntToStr(rt.Bottom - WizardForm.Height)]), mbError, MB_OK)
else
MsgBox(FmtMessage(CustomMessage('WizardHeightInvalid'), [IntToStr(rt.Bottom)]), mbError, MB_OK);
Exit;
end;
end;

{ WizardForm }
with WizardForm do
begin
{ WizardForm }
Width := Width + cx;
Height := Height + cy;

{ buttons }
CancelButton.Left := CancelButton.Left + cx;
CancelButton.Top := CancelButton.Top + cy;
NextButton.Left := NextButton.Left + cx;
NextButton.Top := NextButton.Top + cy;
BackButton.Left := BackButton.Left + cx;
BackButton.Top := BackButton.Top + cy;

{ common }
OuterNotebook.ClientWidth := ClientWidth;
OuterNotebook.ClientHeight := OuterNotebook.ClientHeight + cy;
InnerNotebook.Width := InnerNotebook.Width + cx;
InnerNotebook.Height := InnerNotebook.Height + cy;
MainPanel.ClientWidth := ClientWidth;
WizardSmallBitmapImage.Left := WizardSmallBitmapImage.Left + cx;
PageNameLabel.Width := PageNameLabel.Width + cx;
PageDescriptionLabel.Width := PageDescriptionLabel.Width + cx;
Bevel1.Width := Bevel1.Width + cx;
Bevel.Width := Bevel.Width + cx;
Bevel.Top := Bevel.Top + cy;
BeveledLabel.Top := BeveledLabel.Top + cy;

{ wpWelcome }
dx := MulDiv(cy, WizardBitmapImage.Width, WizardBitmapImage.Height);
WizardBitmapImage.Width := WizardBitmapImage.Width + dx;
WizardBitmapImage.Height := WizardBitmapImage.Height + cy;
WelcomeLabel1.Left := WelcomeLabel1.Left + dx;
WelcomeLabel1.Width := WelcomeLabel1.Width + cx - dx;
dy := WelcomeLabel1.Height;
WelcomeLabel1.AdjustHeight;
dy := WelcomeLabel1.Height - dy;
WelcomeLabel2.Top := WelcomeLabel2.Top + dy;
WelcomeLabel2.Left := WelcomeLabel2.Left + dx;
WelcomeLabel2.Width := WelcomeLabel2.Width + cx - dx;
WelcomeLabel2.AdjustHeight;

{ wpLicense }
LicenseLabel1.Width := LicenseLabel1.Width + cx;
dy := LicenseLabel1.Height;
LicenseLabel1.AdjustHeight;
dy := LicenseLabel1.Height - dy;
LicenseMemo.Top := LicenseMemo.Top + dy;
LicenseMemo.Width := LicenseMemo.Width + cx;
LicenseMemo.Height := LicenseMemo.Height + cy - dy;
LicenseAcceptedRadio.Top := LicenseAcceptedRadio.Top + cy;
LicenseAcceptedRadio.Width := LicenseAcceptedRadio.Width + cx;
LicenseNotAcceptedRadio.Top := LicenseNotAcceptedRadio.Top + cy;
LicenseNotAcceptedRadio.Width := LicenseNotAcceptedRadio.Width + cx;

{ wpPassword }
PasswordLabel.Width := PasswordLabel.Width + cx;
dy := PasswordLabel.Height;
PasswordLabel.AdjustHeight;
dy := PasswordLabel.Height - dy;
PasswordEditLabel.Top := PasswordEditLabel.Top + dy;
PasswordEditLabel.Width := PasswordEditLabel.Width + cx;
PasswordEdit.Top := PasswordEdit.Top + dy;
PasswordEdit.Width := PasswordEdit.Width + cx;

{ wpInfoBefore }
InfoBeforeClickLabel.Width := InfoBeforeClickLabel.Width + cx;
dy := InfoBeforeClickLabel.Height;
InfoBeforeClickLabel.AdjustHeight;
dy := InfoBeforeClickLabel.Height - dy;
InfoBeforeMemo.Top := InfoBeforeMemo.Top + dy;
InfoBeforeMemo.Width := InfoBeforeMemo.Width + cx;
InfoBeforeMemo.Height := InfoBeforeMemo.Height + cy - dy;

{ wpUserInfo }
UserInfoNameLabel.Width := UserInfoNameLabel.Width + cx;
UserInfoNameEdit.Width := UserInfoNameEdit.Width + cx;
UserInfoOrgLabel.Width := UserInfoOrgLabel.Width + cx;
UserInfoOrgEdit.Width := UserInfoOrgEdit.Width + cx;
UserInfoSerialLabel.Width := UserInfoSerialLabel.Width + cx;
UserInfoSerialEdit.Width := UserInfoSerialEdit.Width + cx;

{ wpSelectDir }
SelectDirLabel.Width := SelectDirLabel.Width + cx;
SelectDirLabel.AdjustHeight;
SelectDirBrowseLabel.Width := SelectDirBrowseLabel.Width + cx;
dy := SelectDirBrowseLabel.Height;
SelectDirBrowseLabel.AdjustHeight;
dy := SelectDirBrowseLabel.Height - dy;
DirEdit.Top := DirEdit.Top + dy;
DirEdit.Width := DirEdit.Width + cx;
DirBrowseButton.Top := DirBrowseButton.Top + dy;
DirBrowseButton.Left := DirBrowseButton.Left + cx;
DiskSpaceLabel.Width := DiskSpaceLabel.Width + cx;
dy := DiskSpaceLabel.Height;
DiskSpaceLabel.AdjustHeight;
dy := DiskSpaceLabel.Height - dy;
DiskSpaceLabel.Top := DiskSpaceLabel.Top + cy - dy;

{ wpSelectComponents }
SelectComponentsLabel.Width := SelectComponentsLabel.Width + cx;
dy := SelectComponentsLabel.Height;
SelectComponentsLabel.AdjustHeight;
dy := SelectComponentsLabel.Height - dy;
TypesCombo.Top := TypesCombo.Top + dy;
TypesCombo.Width := TypesCombo.Width + cx;
ComponentsList.Top := ComponentsList.Top + dy;
ComponentsList.Width := ComponentsList.Width + cx;
ComponentsList.Height := ComponentsList.Height + cy - dy;
ComponentsDiskSpaceLabel.Width := ComponentsDiskSpaceLabel.Width + cx;
dy := ComponentsDiskSpaceLabel.Height;
ComponentsDiskSpaceLabel.AdjustHeight;
dy := ComponentsDiskSpaceLabel.Height - dy;
ComponentsDiskSpaceLabel.Top := ComponentsDiskSpaceLabel.Top + cy - dy;

{ wpSelectProgramGroup }
SelectStartMenuFolderLabel.Width := SelectStartMenuFolderLabel.Width + cx;
SelectStartMenuFolderLabel.AdjustHeight;
SelectStartMenuFolderBrowseLabel.Width := SelectStartMenuFolderBrowseLabel.Width + cx;
dy := SelectStartMenuFolderBrowseLabel.Height;
SelectStartMenuFolderBrowseLabel.AdjustHeight;
dy := SelectStartMenuFolderBrowseLabel.Height - dy;
GroupEdit.Top := GroupEdit.Top + dy;
GroupEdit.Width := GroupEdit.Width + cx;
GroupBrowseButton.Top := GroupBrowseButton.Top + dy;
GroupBrowseButton.Left := GroupBrowseButton.Left + cx;
NoIconsCheck.Top := NoIconsCheck.Top + cy;
NoIconsCheck.Width := NoIconsCheck.Width + cx;

{ wpSelectTasks }
SelectTasksLabel.Width := SelectTasksLabel.Width + cx;
dy := SelectTasksLabel.Height;
SelectTasksLabel.AdjustHeight;
dy := SelectTasksLabel.Height - dy;
TasksList.Top := TasksList.Top + dy;
TasksList.Width := TasksList.Width + cx;
TasksList.Height := TasksList.Height + cy - dy;

{ wpReady }
ReadyLabel.Width := ReadyLabel.Width + cx;
dy := ReadyLabel.Height;
ReadyLabel.AdjustHeight;
dy := ReadyLabel.Height - dy;
ReadyMemo.Top := ReadyMemo.Top + dy;
ReadyMemo.Width := ReadyMemo.Width + cx;
ReadyMemo.Height := ReadyMemo.Height + cy - dy;

{ wpPreparing }
PreparingLabel.Width := PreparingLabel.Width + cx;
PreparingMemo.Width := PreparingMemo.Width + cx;
PreparingMemo.Height := PreparingMemo.Height + cy;

{ wpInstalling }
StatusLabel.Width := StatusLabel.Width + cx;
FilenameLabel.Width := FilenameLabel.Width + cx;
ProgressGauge.Width := ProgressGauge.Width + cx;

{ wpInfoAfter }
InfoAfterClickLabel.Width := InfoAfterClickLabel.Width + cx;
dy := InfoAfterClickLabel.Height;
InfoAfterClickLabel.AdjustHeight;
dy := InfoAfterClickLabel.Height - dy;
InfoAfterMemo.Top := InfoAfterMemo.Top + dy;
InfoAfterMemo.Width := InfoAfterMemo.Width + cx;
InfoAfterMemo.Height := InfoAfterMemo.Height + cy - dy;

{ wpFinished }
WizardBitmapImage2.Width := WizardBitmapImage2.Width + dx;
WizardBitmapImage2.Height := WizardBitmapImage2.Height + cy;
FinishedHeadingLabel.Left := FinishedHeadingLabel.Left + dx;
FinishedHeadingLabel.Width := FinishedHeadingLabel.Width + cx - dx;
dy := FinishedHeadingLabel.Height;
FinishedHeadingLabel.AdjustHeight;
dy := FinishedHeadingLabel.Height - dy;
FinishedLabel.Top := FinishedLabel.Top + dy;
FinishedLabel.Left := FinishedLabel.Left + dx;
FinishedLabel.Width := FinishedLabel.Width + cx - dx;
FinishedLabel.AdjustHeight;
RunList.Left := RunList.Left + dx;
RunList.Width := RunList.Width + cx - dx;
dy := RunList.Top;
RunList.Top := FinishedPage.Height - RunList.Height;
dy := RunList.Top - dy;
YesRadio.Top := YesRadio.Top + dy;
YesRadio.Left := YesRadio.Left + dx;
YesRadio.Width := YesRadio.Width + cx - dx;
NoRadio.Top := NoRadio.Top + dy;
NoRadio.Left := NoRadio.Left + dx;
NoRadio.Width := NoRadio.Width + cx - dx;

{ new position }
Center;
end;
end;

///////////////////////////
procedure InitializeWizard;
begin
RecreateWizardForm(150, 50, True);
end;

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

Отправлено: 23:08, 23-02-2015 | #188


Новый участник


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

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


Ну я с этим разобрался. Спасибо. Но проблемка с CheckBox`ом. При выборе компонентов, он не изменяеться, хотя в скине я его сменил и при лицензтонном соглашении работает, а вот при выборе компонентов не хочет, просто галочка.

Отправлено: 23:32, 23-02-2015 | #189


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата roman_kudin@vk:
Но проблемка с CheckBox`ом. При выборе компонентов, он не изменяеться, хотя в скине я его сменил и при лицензтонном соглашении работает, а вот при выборе компонентов не хочет, просто галочка. »
roman_kudin@vk, а CheckListBox это не список CheckBox-ов, как вы думаете, а список текстовых строк с нарисованными рядом изображениями галок или кружочков. И изображения эти берутся не из файла темы, а из стокового виндового изображения OBM_CHECKBOXES Не, вру, метрики галки/кружочка из OBM_CHECKBOXES, а изображение из темы, хотя это тупо - метрики стокового изображения и изображения из темы могут не совпадать. В расширенной версии для видоизменения галок можете использовать функции LoadBtnBmpFromBitmap/LoadBtnBmpFromFile со своим файлом, пример лежит в Examples, файл btnimage.bmp. Состояния галок и кружочков можно выдрать из скина и сделать подобный файл.

Последний раз редактировалось El Sanchez, 24-02-2015 в 15:15.

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

Отправлено: 15:04, 24-02-2015 | #190



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58




 
Переход