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

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

Автор: Serega0675
Дата сообщения: 25.04.2009 20:04
DeKaNszn

Цитата:
Тебе видимо еще не приходилось заниматься оптимизацией кода
Приношу свои извинения... я не хотел вас обидеть, насчёт оптимизации, я прекрасно знаю...
Ещё раз скажу, что всё выше мной сказанное, сказано не со зла и не с целью принизить ваши достоинства...
Автор: SotM
Дата сообщения: 25.04.2009 20:59
spider91

Цитата:
мне ктото поможет с ResTools?

У них же на сайте есть несколько примеров, плюс на форуме пробегали тоже примеры с использованием расширенной версии.

X11
Тебе нужно читать в шапке про то, что нужно пользоваться тегами [no][more][/more][/no]

Igrikxxx

Цитата:
Пробывал скомпилировать, выдает ошибку, после вот этого

Внимательно следи за своим кодом.

DeathMan GMN
Для начала твоя картинка не видна, а во вторых надо более подробно излагать свой вопрос. НО! Всё это нужно делать ТОЛЬКО ПОСЛЕ того, как были попытки самому сделать похожее. Благо в шапке полно примеров, да и обсуждений на форуме тоже достаточно.

Автор: DeathMan GMN
Дата сообщения: 25.04.2009 21:16
SotM
Я ссылку дал на картинку, Я незнаю как правильно изложить вопрос, на картинке всё видно. У меня получается что на заднем фоне картинка на весь экран, а мне нужно что бы было как на картинке.
Автор: SotM
Дата сообщения: 25.04.2009 22:06
DeathMan GMN
Ну да, такое обсуждалось уже. Картинку можно наложить не на весь экран, а только на форму. Такое можно даже посмотреть в инсталяторе Inno Setup Scripting 5.1
Автор: argnistkroleg
Дата сообщения: 25.04.2009 23:39
Файл iss_setup.exe (Inno Setup Scripting 5.1 ) моим нодом 4м распознается как зараженный, что делать?


Рекомендую добавить в шапку программу ISSkin
http://isskin.codejock.com/

Перевод ISSkin Overview

ISSkin является бесплатной версией Codejock’s Skin Framework которая позволяет нам добавлять кастомизированные скины в инсталляторы.

ISSkin дает нам гибкость создания кастомных Визуальных Стилей, которые могут быть использованы в Inno Setup для добавления более профессионального вида в любой инсталлятор, созданный Inno Setup , и лучший среди бесплатных!

Особоенности:

* Поддержка имеющихся визуальных стилей Microsoft Visual Styles.
* Легкое использование с помощью нескольких строк кода.
* Поддержка скинов для имеющихся инсталляторов.

Требования:

* Inno Setup дял компилирования инсталлятора.
* Microsoft Windows.

Инструкция по добавлению нужных кусков кода в скрипт:
http://isskin.codejock.com/gettingstarted.asp (английский язык, но думаю это вас не перепугает)
Автор: msatmb
Дата сообщения: 25.04.2009 23:40
Подскажите пожалуйста по двум вопросам:
1) есть код

Код: DesktopIcon := TCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Parent := WizardForm.SelectDirPage;
Caption := 'Добавить ярлык на рабочий стол';
Left := ScaleX(0);
Top := ScaleY(115);
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True;
end;
Автор: Raf_SE
Дата сообщения: 25.04.2009 23:58
Как сделать чтоб на странице выбора папки для установки, (после того как юзер выбрал папку, и нажал "Далее") инсталлятор проверял ли запущен процесс "infium.exe" и ли есть папка "{app}\Plugins\acme\", и если находит и то и другое, тогда выдавал сообщение типа:

Только при нажатии на "Отмена", чтоб инсталлятор закрывался.

P.S.
1. Если с помощью инсталлятора закрыть\убить процесс "infium.exe" сложно, тогда можно сделать чтоб при нажатии на "Ок" запускался "nircmd.exe", предварительно выгруженный во временную папку, с параметром "killprocess infium.exe".
2. Сам в паскалях не шарю
Автор: DeKaNszn
Дата сообщения: 26.04.2009 00:10
boss911

проверку на наличие ключа и запрос значения можно вынести в InitializeSetup + можно сократить проверку, но в Check: Checking('0'): 0 - это значение, при котором надо копировать

вот:

Код: [no][Files]
Source: C:\My Ptog\My Folder\FOLDER0\*; DestDir: {app}\My Folder\FOLDER0; Check: Checking('0'); Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\My Ptog\My Folder\FOLDER1\*; DestDir: {app}\My Folder\FOLDER1; Check: Checking('1'); Flags: ignoreversion recursesubdirs createallsubdirs

[Code]
var
RegKey: DWORD;
KeyExists:boolean;

function Checking(S: String): Boolean;
begin
Result:= True;
If (KeyExists) and (RegKey <> StrToInt(S))
Then Result:= False;
end;

function InitializeSetup(): Boolean;
begin
Result:= True;
KeyExists := RegValueExists(HKLM, 'SOFTWARE\My Prog', 'MyNameProg');
If (KeyExists)
Then RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey);
end;[/no]
Автор: boss911
Дата сообщения: 26.04.2009 00:44
DeKaNszn

Я не совсем в этом (программировании, Паскаль и т.п.) разбираюсь. Вы лучше сами посоветуйте, что с вашей точки зрения, в моем случае, мне лучше использовать, ваш первый код или второй, что более правильней, быстрее, надежней и т.п.?

Просто у меня в скрипте уже есть function InitializeSetup, для меня всегда была проблема совмещать разные коды в одну функцию. Если честно, то первый код для меня более удобен, так как его можно отдельно прописать, не смешивая с другими операциями в одной функции.
Автор: SotM
Дата сообщения: 26.04.2009 00:50
argnistkroleg

Цитата:
Файл iss_setup.exe (Inno Setup Scripting 5.1 ) моим нодом 4м распознается как зараженный, что делать?

Ну можешь для разнообразия проверить другим антивирусом . Похоже такая проблема только у тебя возникает.

msatmb

Цитата:
Как назначить цвет и написание шрифта.

Точно не помню, но посмотри в хелпе, шрифт можно сменить для всей формы. Если не ошибаюсь...

WelcomeLabel2 - по определению его ты и не сделаешь прозрачным. Это же всё в хелпе можно найти:
property WelcomeLabel2: TNewStaticText; read;
У TNewStaticText нет такого свойства как Transparent.

Создавай свой личный Tlabel, и тогда у него и меняй прозрачность.

И для кого help вообще создают?! Для кого примеры пишутся?!

Raf_SE
Ты же уже это спрашивал. Зачем заново одно и тоже спрашивать?!
Тот же (Inno Setup Scripting 5.1) делает проверку при установке, если он уже установлен. А также было несколько примеров на то, если приложение уже запущено.

Сохрани страницы через "Версия для печати" и поищи.
Автор: DeKaNszn
Дата сообщения: 26.04.2009 01:44
boss911

использовать лучше второй


Цитата:
Просто у меня в скрипте уже есть function InitializeSetup, для меня всегда была проблема совмещать разные коды в одну функцию.


добавь в нее:

Код: [no] KeyExists := RegValueExists(HKLM, 'SOFTWARE\My Prog', 'MyNameProg');
If (KeyExists)
Then RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey); [/no]
Автор: boss911
Дата сообщения: 26.04.2009 03:08

Код: [Setup]
OutputDir=userdocs:
OutputBaseFilename=My Program
Автор: tahirg
Дата сообщения: 26.04.2009 07:32
таки никто не поможет...
в прошлых темах были более отзывчивые люди
Genri
Sero
Sampron
iTASmania_Inc


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

Цитата:
как реализовать

при установке
1-Версия Проф, запретить установку Рос.законодательство и Бухгалтер:Версия Проф НормативныеДокументы

при установке
2-Рос.законодательство, запретить установку Версия Проф, но дать возможность устанавливать\неустанавливать Бухгалтер:Версия Проф НормативныеДокументы

при установке
3-Бухгалтер:Версия Проф НормативныеДокументы, запретить установку Версия Проф, но дать возможность устанавливать\неустанавливать Рос.законодательство

частично я сделал, но дальше ума нехватает

и вторая хотелка
как сделать раскрывающийся список компонентов со значком +
сам проект с исходниками http://ifolder.ru/11793306
300кб
Автор: Serega0675
Дата сообщения: 26.04.2009 08:18
tahirg
[more=подробнее]
Код: [Setup]
AppName=КонсультантПлюс
AppVerName=КонсультантПлюс
DefaultDirName={pf}\ConsultantPlus
DefaultGroupName=ConsultantPlus
OutputBaseFilename=ConsultantPlus
VersionInfoVersion=2.0
VersionInfoDescription=КонсультантПлюс
ShowComponentSizes=false
; отображает список компонентов со знаком +
ComponentsListTVStyle=true

[Files]
Source: {app}\DISTR\DIN\LAW22222.DIN; DestDir: {app}\DISTR\DIN; Tasks: din; Components: law_group\law
Source: {app}\DISTR\DIN\ROS22222.DIN; DestDir: {app}\DISTR\DIN; Tasks: din; Components: law_group\ros
Source: {app}\BASE\LAW\LAW.INI; DestDir: {app}\BASE\LAW; Tasks: din; Components: law_group\law
Source: {app}\BASE\LAW\LAW.KUB; DestDir: {app}\BASE\LAW; Tasks: din; Components: law_group\law
Source: {app}\BASE\ROS\ROS.INI; DestDir: {app}\BASE\ROS; Tasks: din; Components: law_group\ros
Source: {app}\BASE\ROS\ROS.KUB; DestDir: {app}\BASE\ROS; Tasks: din; Components: law_group\ros
Source: {app}\DISTR\DIN\BUH22222.DIN; DestDir: {app}\DISTR\DIN; Tasks: din; Components: docs
Source: {app}\BASE\DOCS\DOCS.INI; DestDir: {app}\BASE\DOCS; Components: docs; Tasks:
Source: {app}\BASE\DOCS\DOCS.KUB; DestDir: {app}\BASE\DOCS; Components: docs; Tasks:

[Tasks]
Name: din; Description: 441 Риц *Rarb, Rlaw, Rexp, Rbas под родной Риц (Некоммерческий выпуск, Сетевые); GroupDescription: Установить дины для выбранных Информационных Банков; Components:
Name: vr400003; Description: Технологический модуль vr400003; GroupDescription: Установка технологического модуля; Flags: exclusive
Name: vr330057; Description: Технологический модуль vr330057; GroupDescription: Установка технологического модуля; Flags: exclusive

[Components]
Name: law_group; Description: Законодательство
Name: law_group\law; Description: Версия Проф; Flags: exclusive
Name: law_group\ros; Description: Российское законодательство; Flags: exclusive
Name: docs; Description: Бухгалтер:Версия Проф НормативныеДокументы

[Types]
Name: Выборочная; Description: Выборочная установка; Flags: iscustom

[Code]
procedure OnClick(Sender: TObject);
begin
if WizardForm.ComponentsList.Checked[1] = True then
WizardForm.ComponentsList.Checked[3]:= False;
end;

procedure InitializeWizard();
begin
WizardForm.ComponentsList.Checked[1]:= True;
WizardForm.ComponentsList.OnClickCheck:= @OnClick;
end;
Автор: tahirg
Дата сообщения: 26.04.2009 08:43
Serega0675
вот куда налить тебе за помощь?
спасибо дружище!
Автор: Igrikxxx
Дата сообщения: 26.04.2009 09:08
Помогите совмесить код: Вот суда нужно его вставить, ну помогите хоть ктонибудь, я уже месяц игру на диск немогу записать из-за этого гемора, буду очень благодарн!

Сам код

Это нужно вставить


Это тоже вставить
Автор: doombuster
Дата сообщения: 26.04.2009 09:09
tahirg

Цитата:
ау , где вы добрые люди, в теме походу остались лишь те кто шебечет о своё и ноль внимания на вопросы новичков, которые читают..читают..и не находят решения

Скорее новички очень ленивые и нехотят искать)


Цитата:
ComponentsListTVStyle=true
неработает, простым языком-несинеет строчка

Из тойже сказки:
http://forum.ru-board.com/topic.cgi?forum=5&topic=27438&start=1640#2
Поиск не для Вас

Автор: tahirg
Дата сообщения: 26.04.2009 09:19
doombuster
и тебе бальшой сенкс
не поверишь
вчера на работе одолел в версии для печати только 1-3 части, думаю для пользы убив 7 часов чтения
а помощь оказалась в 4 части
теперь хотелки заработали, но..не прощаюсь
вдруг ещё раз придётся вам нервы потрепать
Автор: Raf_SE
Дата сообщения: 26.04.2009 11:56
DeKaNszn
Ошибку пишет:


SotM
Во-первых, я незаметил что мне ответили
Во-вторых, склеивать скрипты для меня очень проблематично.
Автор: DeKaNszn
Дата сообщения: 26.04.2009 12:36
Raf_SE

Строку с ошибкой замени на: [no]function NextButtonClick(CurPageID: Integer): Boolean;[/no]

boss911

проверяй
Автор: Raf_SE
Дата сообщения: 26.04.2009 12:53
DeKaNszn
Новая ошибка
Автор: argnistkroleg
Дата сообщения: 26.04.2009 14:00
Я так понимаю здесь нету ссылки на топик обсуждения шапки, как у IndigoRose AutoPlay Madia Studio, например?

[more=ISSkin]
ISSkin


Программа для создания и добавления в инсталлятор кастомных скинов. Изменить можно практически любой элемент окна.
Инструкция по добавлению нужных кусков кода в скрипт (английский язык)

Последний релиз: 2.0.0.0 [18.09.2008]
Скачать | Зеркало
[/more]
Автор: DeKaNszn
Дата сообщения: 26.04.2009 14:07
Raf_SE

в [no][Files][/no] добавь:

Код: [no]Source: compiler:ISTask.dll; DestDir: {tmp}; Flags: dontcopy nocompression noencryption[/no]
Автор: Raf_SE
Дата сообщения: 26.04.2009 14:18

Цитата:
в папке inno setup должен быть ISTask.dll

Нема
Устанавливал расширенную версию с препроцессором. В Гугле тоже его не нахожу. Если мож, то залей dll'ку сюда - http://shareua.com/
Автор: DeKaNszn
Дата сообщения: 26.04.2009 15:58
Raf_SE

в шапке есть:

Цитата:
Inno Setup Scripting 5.1 - Руководство по расширенным возможностям Inno Setup от Kindly


с ней идут почти все dll, которые могут понадобиться
Автор: SotM
Дата сообщения: 26.04.2009 17:02
Igrikxxx
Я же тебе выкладывал совмещенный код, зачем еще раз тоже самое спрашивать?!

argnistkroleg
Твое "произведение" выложил в шапку.
Автор: spider91
Дата сообщения: 26.04.2009 17:05
как сделать чтоб при выборе английского языка в инсталяторе при распакоке аривов из процедуры писало "Extracting files..." а при выборе русского "Pаспаковка файлов..." ?
Автор: doombuster
Дата сообщения: 26.04.2009 17:24
Подскажите, как чтоб при выборе в "Дополнительных задачах", в файле config.cfg добавлялось нужное значение, для каждой задачи разное:
[more][Setup]
AppName=App
AppVerName=App 1.0
DefaultDirName={pf}\App
OutputDir=.\Output
OutputBaseFilename=setup
Compression=lzma
ShowLanguageDialog=no
LanguageDetectionMethod=uilanguage


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

[CustomMessages]
Text=Базы

[Tasks]
Name: English; Description: английская; GroupDescription: {cm:Text}; Flags: exclusive
Name: French; Description: французская; GroupDescription: {cm:Text}; Flags: exclusive unchecked
Name: German; Description: германская; GroupDescription: {cm:Text}; Flags: exclusive unchecked


[Files]
Source: config.cfg; DestDir: {app}; Flags: ignoreversion; AfterInstall: ReplaceLine;

[Code]
procedure ReplaceLine();
var
S: TArrayOfString;
F: String;
i:integer;
begin
F := ExpandConstant('{app}')+'\config.cfg';
if not FileExists(F) then
Exit;
LoadStringsFromFile(F, S);
for i:=0 to GetArrayLength(S)-1 do begin
if Pos('Param =',S[i])>0 then
S[i]:='Param =' + '51'; // при английском таске - 51, при французском - 52, и т.д.
end;
SaveStringsToFile(F, S, False);
end;
[/more]
пока добавляет только конкретное, заданное после S[i]:='Param ='
Автор: Raf_SE
Дата сообщения: 26.04.2009 17:26
DeKaNszn
Пасибо, он то работает, но оказывается есть один нюанс, если убить процесс Infium, то QIP при повторной загрузке, будет "Не в сети" по всем протоколам.
Собстно вопрос: есть ли способ коректно завершить infium.exe?

P.S.
К слову: инсталлятор Квипа умеет корректно завершать работу infium.exe.
Автор: spider91
Дата сообщения: 26.04.2009 19:43
ктото может мне помочь?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: в очередной раз босудим антивиры?


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