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

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

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

Ветеран


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


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

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 908 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 806 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

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


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Аватара для No4noylis

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


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

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


insombia, Для этого удаляй Task, и на SelectDir сам создавай чекбоксы для ярлыков и дополнительного ПО!

-------
Нет ничего невозможного...


Отправлено: 13:15, 09-08-2011 | #2671



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

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


Старожил


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

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


insombia, как так
читать дальше »
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

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

[CustomMessages]
russian.SoftTask=Установить дополнительное ПО
russian.SoftInstall=Идет установка дополнительного ПО. Пожалуйста подождите...

[Icons]
Name: {commondesktop}\My Program; Filename: {app}\MyProg.exe; IconIndex: 0; Check: MakeDesktopIcon

[code]
var
Soft: TCheckBox ;
DesktopIcon: TCheckBox;
DesktopIconlb: TLabel;

function MakeDesktopIcon: Boolean;
begin
Result:=DesktopIcon.Checked;
end;

procedure InitializeWizard();
begin
Soft:= TCheckBox.Create(WizardForm)
Soft.SetBounds(WizardForm.DirEdit.Left, WizardForm.DirEdit.Top+ScaleY(26), ScaleX(200), ScaleY(20))
Soft.Caption:= ExpandConstant('{cm:SoftTask}')
Soft.Checked:=True;
Soft.Parent:=WizardForm.SelectDirPage;

DesktopIcon := TCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Left := ScaleX(0);
Top := ScaleY(130);
Width := ScaleX(15);
TabOrder := 0;
Checked := True;
Parent := WizardForm.SelectDirPage;
end;

DesktopIconlb := TLabel.Create(WizardForm);
DesktopIconlb.Left := DesktopIcon.Left + ScaleX(17);
DesktopIconlb.Top := DesktopIcon.Top + ScaleY(3);
DesktopIconlb.Caption := 'Добавить ярлык на рабочий стол';
DesktopIconlb.Font.Color := clblack;
DesktopIconlb.Transparent := True;
DesktopIconlb.Parent := WizardForm.SelectDirPage;
end;


procedure CurStepChanged(CurStep: TSetupStep);
var res: integer;
begin
if CurStep = ssPostInstall then begin
If Soft.Checked then begin
WizardForm.FileNameLabel.Caption:=ExpandConstant('{cm:SoftInstall}');
Exec(ExpandConstant('{src}\Redist\PhysX_9.09.0428_System Software.exe'), '/quiet', ExpandConstant('{src}\Redist'), SW_SHOW, ewWaitUntilTerminated, Res);
Exec(ExpandConstant('{src}\DirectX\DXSETUP.exe'), '/silent', ExpandConstant('{src}\DirectX'), SW_SHOW, ewWaitUntilTerminated, Res);
if isWin64 then
Exec(ExpandConstant('{src}\Redist\vcredist_x64.exe'), '/Q', ExpandConstant('{src}\Redist'), SW_SHOW, ewWaitUntilTerminated, Res)
else
Exec(ExpandConstant('{src}\Redist\vcredist_x86.exe'), '/Q', ExpandConstant('{src}\Redist'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:17, 09-08-2011 | #2672


Ветеран


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

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


как сделать чтобы в ис доне не писалось какие именно файлы распаковываются а просто распаковка файлов?

Отправлено: 13:33, 09-08-2011 | #2673


Ветеран


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

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


vint56 блин у меня черный инсталятор то получилось так http://images.bcm.net.ua/images/4294...0248071598.jpg как исправить?

Отправлено: 13:54, 09-08-2011 | #2674


Старожил


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

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


insombia,
Цитата insombia:
как сделать чтобы в ис доне не писалось какие именно файлы распаковываются а просто распаковка файлов? »
procedure CurStepChanged(CurStep: TSetupStep);

ShowComponents; на этапе показа
LabelCurrFileName.Hide; он скроет лайбал и не будет показывать файлы
а поповоду 2 вопроса
читать дальше »

[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

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

[CustomMessages]
russian.SoftTask=Установить дополнительное ПО
russian.SoftInstall=Идет установка дополнительного ПО. Пожалуйста подождите...

[Icons]
Name: {commondesktop}\My Program; Filename: {app}\MyProg.exe; IconIndex: 0; Check: MakeDesktopIcon

[code]
var
Soft,DesktopIcon: TCheckBox ;
Softlb,DesktopIconlb: TLabel;

function MakeDesktopIcon: Boolean;
begin
Result:=DesktopIcon.Checked;
end;

procedure InitializeWizard();
begin
Soft := TCheckBox.Create(WizardForm);
with Soft do
begin
Left := ScaleX(0);
Top := ScaleY(110);
Width := ScaleX(15);
TabOrder := 0;
Checked := True;
Parent := WizardForm.SelectDirPage;
end;

Softlb := TLabel.Create(WizardForm);
Softlb.Left := ScaleX(17);
Softlb.Top := ScaleY(110);
Softlb.Caption := 'Установить По';
Softlb.Font.Color := clwhite;
Softlb.Transparent := True;
Softlb.Parent := WizardForm.SelectDirPage;


DesktopIcon := TCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Left := ScaleX(0);
Top := ScaleY(130);
Width := ScaleX(15);
TabOrder := 0;
Checked := True;
Parent := WizardForm.SelectDirPage;
end;

DesktopIconlb := TLabel.Create(WizardForm);
DesktopIconlb.Left := DesktopIcon.Left + ScaleX(17);
DesktopIconlb.Top := DesktopIcon.Top + ScaleY(3);
DesktopIconlb.Caption := 'Добавить ярлык на рабочий стол';
DesktopIconlb.Font.Color := clwhite;
DesktopIconlb.Transparent := True;
DesktopIconlb.Parent := WizardForm.SelectDirPage;
end;


procedure CurStepChanged(CurStep: TSetupStep);
var res: integer;
begin
if CurStep = ssPostInstall then begin
If Soft.Checked then begin
WizardForm.FileNameLabel.Caption:=ExpandConstant('{cm:SoftInstall}');
Exec(ExpandConstant('{src}\Redist\PhysX_9.09.0428_System Software.exe'), '/quiet', ExpandConstant('{src}\Redist'), SW_SHOW, ewWaitUntilTerminated, Res);
Exec(ExpandConstant('{src}\DirectX\DXSETUP.exe'), '/silent', ExpandConstant('{src}\DirectX'), SW_SHOW, ewWaitUntilTerminated, Res);
if isWin64 then
Exec(ExpandConstant('{src}\Redist\vcredist_x64.exe'), '/Q', ExpandConstant('{src}\Redist'), SW_SHOW, ewWaitUntilTerminated, Res)
else
Exec(ExpandConstant('{src}\Redist\vcredist_x86.exe'), '/Q', ExpandConstant('{src}\Redist'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:04, 09-08-2011 | #2675


Ветеран


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

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


что делать если есть 2 одинаковых CurStepChanged(CurStep: TSetupStep);

с ним типа
Procedure CurPageChanged(CurPageID: Integer);
Begin
CurPageChanged2 (CurPageID);
end; не пашет

Отправлено: 14:40, 09-08-2011 | #2676


Старожил


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

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


insombia, там где одинаковые поменяй на 1 и 2
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
CurPageChanged2(CurPageID);
end;

Отправлено: 14:48, 09-08-2011 | #2677


Аватара для R.i.m.s.k.y.

Ветеран


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

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


будет забавно если CurPageChanged1 и CurPageChanged2 сработают над одной страницей

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 14:50, 09-08-2011 | #2678


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата R.i.m.s.k.y.:
будет забавно если CurPageChanged1 и CurPageChanged2 сработают над одной страницей »
Я писал уже про объединение процедур несколько раз, но есть авторитетные люди, которые говорят, что что можно забить на мои советы, и делать так, как по их авторитетному мнению нужно делать. Но, в конце концов, справедливость не так, так иначе себя покажет. Программирование терпит мелкие ошибки до случая, не далее

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

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

Отправлено: 15:00, 09-08-2011 | #2679


Аватара для R.i.m.s.k.y.

Ветеран


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

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


мелкие ошибки в программировании - это гарантированные баги, на которые потом будешь пялиться день и думать что этот-то кусок точно работает.

Цитата insombia:
как сделать чтобы в ис доне не писалось какие именно файлы распаковываются а просто распаковка файлов? »
Код: Выделить весь код
[Files] 
Source: .\Files\*; DestDir: "{app}"; BeforeInstall: HideInstallPath; AfterInstall: ShowInstallPath 

[*Code] 
procedure HideInstallPath(); 
begin 
WizardForm.FileNameLabel.Visible := False; 
end; 
//*******// 
procedure ShowInstallPath(); 
begin 
WizardForm.FileNameLabel.Visible := True; 
end;
2. Можешь попробовать и так сделать:
Код: Выделить весь код
procedure InitializeWizard(); 
begin 
WizardForm.FileNameLabel.Visible:= False; 
end;
Это отключит отображение файлов вообще.
В первом случае путь скрывается только для тех файлов, для которых заданы указанные процедуры; во втором - путь скрывается для всех файлов. Первый вариант более гибкий, но если надо скрыть путь абсолютно для всех файлов - предпочтительнее второй вариант.

В примере ниже путь будет скрыт только для файлов, копируемых в системную директорию:
Код: Выделить весь код
[Files] 
Source: .\AppFiles\*; DestDir: "{app}" 
Source: .\SysFiles\*; DestDir: "{sys}"; BeforeInstall: HideInstallPath; AfterInstall: ShowInstallPath 
Source: .\DocFiles\*; DestDir: "{app}" 

[*Code] 
procedure HideInstallPath(); 
begin 
WizardForm.FileNameLabel.Visible := False; 
end; 
//*******// 
procedure ShowInstallPath(); 
begin 
WizardForm.FileNameLabel.Visible := True; 
end;

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

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

Отправлено: 15:03, 09-08-2011 | #2680



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход