Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: bongo123
Дата сообщения: 04.11.2011 18:15
Gnom3
Спасибо за совет, мне не совсем понятно - у IS такое действие возможно через например созданный линк "Удаление и изменение компонентов" в "Пуске", как задать такое в Innо.

Еще вопрос. Легенда - на новой странице создан чекбокс, если отмечен, то после инсталляции основы, выполняется его функция - установка доп. ПО (например отменяем ее), окно исчезает, теперь страница завершения установки с кнопкой "Завершить", вот если ее нажать - опять появится установка этого доп ПО... Что изменить или дополнить, чтобы не было дублирования?
[more]
Код: procedure CurStepChanged(CurStep: TSetupStep);
var res: integer;
begin
If DX.Checked then
Exec(ExpandConstant('{tmp}\oalinst.exe'), '', ExpandConstant('{tmp}'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
Автор: Gnom3
Дата сообщения: 04.11.2011 19:22

Цитата:
Что изменить или дополнить, чтобы не было дублирования?

Вставить проверку на установленность этого по. У меня это сделано так, на примере пача для семерки, для чтения справок старого формата (до сих пор таких полно):
[more=код]
Код: [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[CustomMessages]
russian.NotIsWin7=Устанавливается только на Ос Windows 7
russian.HLPnotNeed=Нет необходимости устанавливать это обновление

english.NotIsWin7=Only installed on Windows 7
english.HLPnotNeed=No need to install this update

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

[*code]
//================== Начало - Проверка необходимости HLP ==================//
Function isHLPinstalled : boolean;
var
VersionMS0, VersionLS0 : Cardinal; b1, b2 ,b3, b4 : boolean;
begin
b1 := False; b2 := False; b3 := False; b4 := False;
GetVersionNumbers(ExpandConstant('{win}\winhlp32.exe'), VersionMS0, VersionLS0);
if (VersionLS0 >= 498089986) then b1 := True;
if (FileExists(ExpandConstant('{sys}\ftlx041e.dll'))) then b2 := True;
if (FileExists(ExpandConstant('{sys}\ftlx0411.dll'))) then b3 := True;
if (FileExists(ExpandConstant('{sys}\fftsrch.dll'))) then b4 := True;
Result := (b1 or b2 or b3 or b4);
end;

Function isWin7():boolean;
var Version: TWindowsVersion;
begin
GetWindowsVersionEx (Version);
Result := (Version.Major = 6) and (Version.Minor = 1);
end;

function InitializeSetup(): Boolean;
begin
case isWin7 of
False: MsgBox(ExpandConstant('{cm:NotIsWin7}'), mbConfirmation, MB_OK);
True: if isHLPinstalled then MsgBox(ExpandConstant('{cm:HLPnotNeed}'), mbConfirmation, MB_OK);
end;
Result := not isHLPinstalled and isWin7;
end;
//================== Конец - Проверка необходимости HLP ==================//
Автор: bugron
Дата сообщения: 04.11.2011 21:00
Gnom3
Возможно я нашёл выход, просто всё что делал в NSIS нужно сделать в AutoIt. Там есть функция ControlGetText, которая возвращает текст управляющего элемента.
Автор: bongo123
Дата сообщения: 04.11.2011 23:22
Gnom3

А зачем мне проверка необходимости. У меня четкое условие - отмеченный чекбокс, установка отрабатывает все верно, НО, когда инсталл и все доп установки отработали, на финальной странице жмем кнопку "Завершить", и опять начинается установка этого ПО. Я брал код (установка доп ПО через секцию Code) из примеров и строчку из него привел в посте выше, думал в ней где ошибка. Может есть хороший, правильно реализованный пример, подскажите.

Нашел параметр - [Setup]: AppModifyPath, интересно, что прописывать в нее, если пользователь устанавливал программу с iso образа, через DTools... Если он его (iso) удалит, это работать ведь не будет? И как прописать этот линк в меню "Пуск"

Автор: xanloz
Дата сообщения: 05.11.2011 02:32
Подскажите пожалуйста, как скрыть ЭТО полностью?
Автор: Snoopak96
Дата сообщения: 05.11.2011 04:47
bongo123
[more=Читать дальше..][Run]
Filename: {src}\redist\dxwebsetup.exe; Parameters: /q; Check: DirectCheck;

[_Code]
var
Direct: TNewCheckBox;

function DirectCheck: Boolean;
begin
Result:=Direct.Checked;
end;

procedure DirectOnClick(Sender: TObject);
begin
Direct.Checked:= not Direct.Checked;
end;

procedure InitializeWizard;
begin
Direct := TNewCheckBox.Create(WizardForm);
with Direct do
begin
Name := 'Direct';
Parent := WizardForm.SelectDirPage;
Left := ScaleX(11);
Top := ScaleY(190);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Установить DirectX';
Checked:= True;
end;
end;[/more]
Автор: serg_aka_lain
Дата сообщения: 05.11.2011 06:08
bongo123

Цитата:
Нашел параметр - [Setup]: AppModifyPath, интересно, что прописывать в нее, если пользователь устанавливал программу с iso образа, через DTools... Если он его (iso) удалит, это работать ведь не будет? И как прописать этот линк в меню "Пуск"


Код:
[Setup]
AppModifyPath={app}\MyRepair.exe

[Icons]
Name: {group}\Repair; Filename: {app}\MyRepair.exe;
Автор: VASYAKRN
Дата сообщения: 05.11.2011 10:58
у кого имеются Ukrainian.isl
Автор: serg_aka_lain
Дата сообщения: 05.11.2011 15:23
VASYAKRN
Ukrainian.isl

Автор: VASYAKRN
Дата сообщения: 05.11.2011 18:13
serg_aka_lain спасиба
Автор: CTpaHNICK
Дата сообщения: 05.11.2011 21:28
Привет! Никто не знает как реализовать замену текстур окна и кнопок в диалоговых окнах!?
Пример!
Автор: ValyoK777
Дата сообщения: 06.11.2011 09:15
CTpaHNICK там походу создаётся своя понель вместо стандартной потом на неё всё навешивается через ботву)
Автор: vintage_1
Дата сообщения: 06.11.2011 10:49
CTpaHNICK
[more=Держи]#define GameName "Sacred"

[Setup]
AppName={#GameName}
AppVerName={#GameName}
DefaultDirName={pf}\{#GameName}
OutputDir=.
AppPublisher=troyan


[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"


[_Code]
var
BrowseForm : TSetupForm;
Browse, OK, NO, back, new : TButton;
DirTreeView : TFolderTreeView;
Edit : TNewEdit;


//-----------------------------//
procedure OKclick(Sender: TObject);
begin
BrowseForm.Close;
WizardForm.Enabled:=True;
WizardForm.DirEdit.Text:=AddBackslash(Edit.Text);
end;

procedure BackClick(Sender: TObject);
begin
Edit.Text:=AddBackslash(ExpandConstant('{pf}\')+'{#GameName}');
DirTreeView.ChangeDirectory(AddBackslash(ExpandConstant('{pf}\')), True);
end;

procedure NewClick(Sender: TObject);
begin
DirTreeView.CreateNewDirectory('Новая');
Edit.Text:=AddBackslash(DirTreeView.Directory) + '{#GameName}';
end;

procedure NOclick(Sender: TObject);
begin
BrowseForm.Close;
WizardForm.Enabled:=true;
end;

procedure DirFolderChange(Sender: TObject);
Begin
Edit.Text:=AddBackslash(DirTreeView.Directory) + '{#GameName}';
end;

procedure FormClose(Sender: TObject; var Action: TCloseAction);
begin
WizardForm.Enabled:=true;
end;



//-----------------------------//
procedure BrowseClick(Sender: TObject);
begin
BrowseForm := CreateCustomForm();
with BrowseForm do begin
ClientWidth:=WizardForm.Width/2;
ClientHeight:=WizardForm.Height-100;
CenterInsideControl(WizardForm, False);
Caption:='Browse For Folder';
Color:=$3E2536;
onClose:=@FormClose;

ok:=tbutton.create(BrowseForm)
with ok do begin
Left:=5; top:=BrowseForm.Height-ok.Height-30;
Width:=BrowseForm.ClientWidth/4;
parent:=BrowseForm;
Caption:='OK';
onclick:=@OKclick;
end;

back:=tbutton.create(BrowseForm)
with back do begin
Left:=ok.left+ok.Width+5; top:=BrowseForm.Height-ok.Height-30;
Width:=BrowseForm.ClientWidth/5;
parent:=BrowseForm;
Caption:='Reset';
onclick:=@BackClick;
end;

new:=tbutton.create(BrowseForm)
with new do begin
Left:=back.left+back.Width+7; top:=BrowseForm.Height-ok.Height-30;
Width:=BrowseForm.ClientWidth/5;
parent:=BrowseForm;
Caption:='Folder';
onclick:=@NewClick;
end;

no:=tbutton.create(BrowseForm)
with no do begin
Width:=BrowseForm.ClientWidth/4;
Left:=BrowseForm.ClientWidth - Width -5; top:=BrowseForm.Height-ok.Height-30;
parent:=BrowseForm;
Caption:='NO';
onclick:=@NOclick;
end;

DirTreeView:= TFolderTreeView.Create(BrowseForm)
with DirTreeView do begin
SetBounds(5,5,BrowseForm.Width-17,210);
OnChange:=@DirFolderChange;
Parent:=BrowseForm;
end;

Edit:= TNewEdit.Create(BrowseForm);
with edit do begin
SetBounds(5,220,BrowseForm.Width-17,15);
Text:=WizardForm.DirEdit.text;
Parent:= BrowseForm;
Color:=$3E2536;
Font.Color:=clWhite;
Font.Name:='Georgia';
end;

with tlabel.create(BrowseForm) do begin
SetBounds(6,245,BrowseForm.Width,15);
caption:='Select a folder and click OK, else click NO.';
parent:=BrowseForm;
Font.Color:=clWhite;
Font.Size:=8;
Font.Name:='Georgia';
end;
end;
DirTreeView.ChangeDirectory(AddBackslash(WizardForm.dirEdit.Text), true);
Edit.Text:=AddBackslash(DirTreeView.Directory);
BrowseForm.Show;
WizardForm.Enabled:=false;
end;


//-----------------------------//
procedure InitializeWizard;
begin
WizardForm.DirBrowseButton.Visible:=false;

Browse:=tbutton.create(WizardForm);
with Browse do begin
Parent:=WizardForm.SelectDirPage;
Left:=WizardForm.DirBrowseButton.left;
Top:=WizardForm.DirBrowseButton.Top-1;
Caption:='My Browse...';
OnClick:=@BrowseClick;
end;
end;[/more]

ValyoK777
Если я не ошибаюсь там только кнопки на ботве и всё.
Автор: CrazYViruS_CrazyNet
Дата сообщения: 06.11.2011 11:45
Ребят помогите пожалуйста,очень срочно нужно сделать инсталлер наподобие

с максимальным сжатием ...
я вообще очоч далекий нуб в этом деле ... можете выложить скрипт или шаблон хотябы с таким скином инсталлера буду очень благодарен !!!

через компилятор почемуто сетапник от этого репака нормально не открывается в скрипте крякозябры всякие ...
Автор: Snoopak96
Дата сообщения: 06.11.2011 13:24
CrazYViruS_CrazyNet,
Тебе его никто не даст.
Автор: CTpaHNICK
Дата сообщения: 06.11.2011 13:55
vintage_1 благодарю! Точто надо!
Автор: Robkovich
Дата сообщения: 06.11.2011 15:44
Пожалуйста, подскажите код, чтобы после установки на рабочем столе создавался такой ярлык - http://i026.radikal.ru/1111/76/c9e697c42e27.png , http://s016.radikal.ru/i335/1111/be/54e1558003d3.png
Автор: meekrab
Дата сообщения: 06.11.2011 18:41
Robkovich
Ух куда вы замахунлись. Такого я еще не встречал. Это ярлык создается через Steam. Интересно для чего вам это нужно?
Автор: serg_aka_lain
Дата сообщения: 06.11.2011 19:54
Robkovich

Цитата:
Пожалуйста, подскажите код, чтобы после установки на рабочем столе создавался такой ярлык

Это простой файл-ссылка, открой его блокнотом, и посмотри структуру.

Код:
[InternetShortcut]
URL=steam://rungameid/34010
Автор: KiMKi
Дата сообщения: 06.11.2011 22:51
Hi, i have a question.
I am trying to prepare a setup with Inno setup. 32bit and 64bit versions of .dll files are in the setup file. I want the setup will select the .dll file (32bit or 64bit) related to the operating system (32bit os or 64bit os)and register it to the registry. Which code or system sohuld I use? How can I do that?
Автор: Snoopak96
Дата сообщения: 06.11.2011 23:02
KiMKi
[more=Read more..][Files]
Source: Win32.dll; DestDir: {app}; Flags: ignoreversion; Check: not IsWin64
Source: Win64.dll; DestDir: {app}; Flags: ignoreversion; Check: IsWin64

[Registry]
Root: HKLM; SubKey: SOFTWARE\Focus Home Interactive\Cities XL 2012; ValueType: string; ValueName: SELECTED_LANGUAGE; ValueData: 1033; Flags: uninsdeletekey; Check: not IsWin64;
Root: HKLM; SubKey: SOFTWARE\Wow6432Node\Focus Home Interactive\Cities XL 2012; ValueType: string; ValueName: SELECTED_LANGUAGE; ValueData: 1033; Flags: uninsdeletekey; Check: IsWin64;[/more]
Автор: KiMKi
Дата сообщения: 06.11.2011 23:14
@Snoopak96, thanks for your answer but it not works for me.
Does anyone have a different idea?
Автор: Snoopak96
Дата сообщения: 06.11.2011 23:23
KiMKi
Not works?
Автор: Gnom3
Дата сообщения: 07.11.2011 08:15
Snoopak96 так более правильно будет, наверное, поскольку вопрос был про регистрацию длл в системе.

Код: [Files]
Source: Win32.dll; DestDir: {app}; Flags: ignoreversion regserver; Check: not IsWin64
Source: Win64.dll; DestDir: {app}; Flags: ignoreversion regserver; Check: IsWin64
Автор: Gnom3
Дата сообщения: 08.11.2011 09:44
Внимание, нужен обширный тест нового IDE-редактора Inno Script Studio Отчеты - мне в личку.
Как я понял, там полно ошибок...
Автор: bax77
Дата сообщения: 08.11.2011 16:31
Подкиньте скрипт чтобы Splash заставка была,желательно с библиотекой=)Заранее благодарен!
Автор: innonewbie
Дата сообщения: 08.11.2011 18:07
bax77
Держи, 2 варианта из примеров: http://rghost.ru/29106551
Автор: alex0413
Дата сообщения: 08.11.2011 21:10
помогите исправить ошибку в этом скрипте. При успешной установке выглядит вот так , хотя заместь второй надписи должно быть это
Код: Игра {#appname} установлена на Ваш компьютер. %nПриложение можно запустить с помощью соответствующего значка. %nНажмите «Завершить», чтобы выйти из программы установки.
Автор: mifkys
Дата сообщения: 09.11.2011 09:17
Народ, подскажите как сделать так, чтобы собранные инсталляционные пакеты не проверял антивирус при каждом обращении, а то система подвисает, когда пытаешься скопировать или просто аткрыть такой установщик.
Автор: log1stable
Дата сообщения: 09.11.2011 12:00
mifkys, про антивирь не знаю. А про Label окна помогу - удали(или закомментируй) 272 строку: WizardForm.Caption:=ExpandConstant('{cm:Extra...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.