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

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

Автор: dodakaedr
Дата сообщения: 27.03.2015 20:29
CUTA

Цитата:
Мне нужно точно двигать полосу прогресс бара при последовательном выполнении задач.

В справке есть подобное твоего вопроса. Лично никогда этим не задавался.

nektoktoto

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

[more=Как-то так. Редактируйте под свои нужды.]
Код: [Setup]
AppName=App
AppVersion=1.0
DefaultDirName={pf}\Retail (DVD версия)

[Code]
var
NewRadioButton1: TNewRadioButton;
NewRadioButton2: TNewRadioButton;

procedure setdir(sender: tobject);
begin
if NewRadioButton1.Checked then
WizardForm.DirEdit.Text := ExpandConstant('{pf}\Retail (DVD версия)') else
WizardForm.DirEdit.Text := ExpandConstant('{pf}\Digital (Steam версия)');
end;

procedure RedesignWizardForm;
begin
{ NewRadioButton1 }
NewRadioButton1 := TNewRadioButton.Create(WizardForm);
with NewRadioButton1 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(120);
Width := ScaleX(417);
Height := ScaleY(17);
Caption := 'Retail (DVD версия)';
Checked := True;
TabStop := True;
OnClick := @setdir;
end;

{ NewRadioButton2 }
NewRadioButton2 := TNewRadioButton.Create(WizardForm);
with NewRadioButton2 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(144);
Width := ScaleX(417);
Height := ScaleY(17);
Caption := 'Digital (Steam версия)';
OnClick := @setdir;
end;

NewRadioButton1.TabOrder := 5;
NewRadioButton2.TabOrder := 6;

with WizardForm.NoIconsCheck do
begin
Checked := True;
State := cbChecked;
end;
end;

procedure InitializeWizard();
begin
RedesignWizardForm;
end;
Автор: nektoktoto
Дата сообщения: 27.03.2015 21:48

Цитата:
Как-то так. Редактируйте под свои нужды.


dodakaedr, Большое спасибо, это работает, всё получилось!
Автор: DmitryKz
Дата сообщения: 28.03.2015 09:42
Подскажите по такой проблеме:
Папка файлов для установки имеет объём 19 гигабайт. 7zip (в режиме solid) сжимает такую папку в архив объемом 4 гигабайта (за счёт того, что исходная папка имеет множество одинаковых файлов), а Inno Setup (в режиме solid же) только до 12 гигабайт. Подскажите, что еще нужно включить в скрипт, чтобы получить такое сжатие в 4 гигабайта, как это сделал 7zip?
Автор: CUTA
Дата сообщения: 28.03.2015 10:25
Может кто то знает как управлять прогресс баром? Или код похожий как пример даст.
Автор: AlexALSP
Дата сообщения: 28.03.2015 14:35
DmitryKz

Ты не пробовал просто почитать справку в которой описаны все настройки разных степеней сжатия используемые в программе ?

Автор: DmitryKz
Дата сообщения: 28.03.2015 14:42
Прочитал и протестировал lzma2/ultra - но эффекта не дало - инсталлятор по-прежнему компилировался 12-ти гигабайтным. Возможно, нужно экспериментировать с другими параметрами, но каждая компиляция длится более часа.
Автор: AlexALSP
Дата сообщения: 28.03.2015 15:27
Можно ведь эксперементировать не со всеми , а с десятком файлов .
Автор: DmitryKz
Дата сообщения: 28.03.2015 15:40
Можно, только добавляется еще одна задача - искать в 19 гигабайтах такие файлы и создавать тестовый источник. А для моей задачи это не стоит внимания и времени.
Впрочем, я уже решил ее с помощью ISDone.
Автор: DiCorp
Дата сообщения: 29.03.2015 22:29
Здравствуйте! Помогите пожалуйста кто может.
Как мне сделать Расширенный прогресс бар а то я чёт найти не могу совсем это дело ни где
Автор: Habib2302
Дата сообщения: 31.03.2015 15:22
Доброе время суток.#
Автор: Mooriarty
Дата сообщения: 31.03.2015 17:28
Доброго времени суток, подскажите пожалуйста знающие люди. В общем в инсталяторе у меня только одна страница с выбором компонентов. И как сделать чтобы после нажатия на кнопку "Установить" закрывался "explorer.exe", а после копирования всех файлов и внесения изменений в реестр, чистился кэш иконок, по типу команды "ie4uinit.exe -ClearIconCache" а потом вновь запускался "explorer.exe". Заранее благодарю за помощь.
Автор: alloc22
Дата сообщения: 02.04.2015 02:21
Может быть кто знает как заставить Чекбоксы которые находятся на странице Выбор дополнительных заданий мастера, отображаться в стиле скина как и остальные компоненты? Я использую ISSkin
[more=Скриншоты]


[/more]


Код:
[Tasks]
Name: DesktopIcon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons};

[Icons]
Name: {userdesktop}\{#MyAppName}; Filename: {app}\{#ExeName}; WorkingDir: {app}; Comment: {cm:Run} {#MyAppName}; Tasks: DesktopIcon; Check: CheckError
Автор: CUTA
Дата сообщения: 03.04.2015 16:32
Прошу помочь, примером.
Есть своя переменная, вопрос как задать ей параметры шрифта, цвет размер и стиль?
Автор: dodakaedr
Дата сообщения: 03.04.2015 17:00

Цитата:
Есть своя переменная,

Конкретней...
Автор: CUTA
Дата сообщения: 03.04.2015 17:03
dodakaedr

Цитата:
Конкретней...

Допустим есть функция

Код: function MyConst(Param: String): String;
begin
Result := ExpandConstant('Текст');
end;
Автор: dodakaedr
Дата сообщения: 03.04.2015 18:12

Цитата:
Как задать параметры для текста?

Приведите полностью пример использования своей функции.
Автор: CUTA
Дата сообщения: 03.04.2015 18:43
dodakaedr
Вы случайно не знаете как привязать компонент из секции [Components] к функциям в секции code?

Уже сам разобрался, если кому нужно то пример выложу или в личку кину.
Автор: AlekseyPopovv
Дата сообщения: 08.04.2015 19:15
В системе имеется файл "Config.ini" с таким содержимым:
[General]
Language=Russian
Как мне в эту секцию дописать:
Key=123
и сохранить файл в таком виде:
[General]
Language=Russian
Key=123
Пробовал так, но результат не тот:
if FileExists(ExpandConstant('{win}\Config.ini')) then
SetIniString('Gereral', 'Key', '123', ExpandConstant('{win}\Config.ini'));
Получается:
[General]
Language=Russian

[General]
Key=123
Помогите.
Автор: sjwrec
Дата сообщения: 09.04.2015 12:39
AlekseyPopovv

Цитата:
SetIniString('Gereral', 'Key', '123', ExpandConstant('{win}\Config.ini'));


Не правильно названа секция. Требуется General , а у вас написано Gereral

А ещё возможно что у вас нет прав на редактирование этого файла, вот запись ключа и не идёт.
Автор: AlekseyPopovv
Дата сообщения: 09.04.2015 20:42
sjwrec
Спасибо, уже разобрались, там оказалось всё не так просто.
Вот что ещё интересует:
Я создал новую страницу "CreateCustomPage", как сделать что бы она отображалась только при выборе "Portable" версии?
Автор: serg_aka_lain
Дата сообщения: 10.04.2015 00:15

Цитата:
как сделать что бы она отображалась только при выборе "Portable" версии?

Через встроенную функцию ShouldSkipPage

Код:
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if not PortableMode.Checked then
if PageID = MyPage.ID then Result := True;
end;
Автор: AngelNet
Дата сообщения: 10.04.2015 03:34
доброе время суток, господа!
давненько я не был в этом тёплом уютном топике, даже соскучился по атмосфере.

вчера решил мигрировать с ANSI компилятора сабжа на UNICODE-версию и столкнулся с парочкой граблей.
в частности раньше я для завершения запущенного приложения при его деинсталляции использовал ISTask.dll, но в юникод версии она перестала работать(
кто нибудь сталкивался с подобной проблемой и как вы ее решали?

заодно ищу иные пути решения вопроса:
задача - прибитие (желательно корректное, с возвратом результата о положительном состоянии деинсталлеру) удаляемого приложения.
taskkill /f конечно вариант, но он ведь не сообщает инсталятору когда отработал и успешно ли?
прошу поправить меня если я ошибаюсь.

заранее благодарю откликнувшихся!
Автор: tahirg
Дата сообщения: 10.04.2015 10:24
хочу свою иконку в "установке и удалении программ"
в скрипте добавляю значение
UninstallDisplayIcon
однако меняется лишь иконка деинсталятора, а панели управлении нет
что я делаю не так?
Автор: sjwrec
Дата сообщения: 10.04.2015 10:31
tahirg

Цитата:
UninstallDisplayIcon однако меняется лишь иконка деинсталятора, а панели управлении нет что я делаю не так?


Хм странно. У меня так прописано

Код:
UninstallDisplayIcon={uninstallexe}
Автор: AngelNet
Дата сообщения: 10.04.2015 14:46
tahirg
иконку нужно еще и положить в сурсы. например как это делал я:

Код: [Setup]
DefaultGroupName=mIRC
// значок программы в апплете установка/удаление программ
UninstallDisplayIcon={app}\mirc.exe

// используемая для деинсталлятора иконка
UninstallIconFile=uninstall.ico
Автор: LuxCore
Дата сообщения: 13.04.2015 15:20
nik1967
Цитата:
непонятно. Как то бы яснее.

Инсталлятор с именем Project.exe содержит исполняемый файл программы с именем Project.exe (т. е. с таким же именем). Нужно последний установить на место инсталлятора.

И ещё вопрос: как узнать, какая версия Microsoft Office установлена на компьютере?

Автор: AngelNet
Дата сообщения: 15.04.2015 02:08
камрады, подскажите пожалуйста, как сделать процедуру прибития процесса при деинсталле более эффективной.
пока есть такой костыль, но он работает некрасиво и топорно (порой не отрабатывает вовсе)

Код: procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
// прибиваем запущенный процесс при деинсталляции
var
ErrorCode: Integer;
begin
ShellExec('', ExpandConstant('{sys}\cmd.exe'),'/c taskkill /im test.exe /f','', SW_SHOW, ewNoWait, ErrorCode);
Sleep(3000);
end;
Автор: dodakaedr
Дата сообщения: 15.04.2015 14:01
AngelNet
Для теста перед запуском скрипта запустите калькулятор
Код: [Setup]
AppName=Test
AppVersion=1.1
DefaultDirName={pf}\Test

[Code]
function CheckAppRun: boolean;
var
i: integer;
begin
if FindWindowByWindowName('Калькулятор') = 0 then
Result:= True
else if MsgBox('Закрыть калькулятор?', mbError, MB_YESNO) = idyes then begin
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM calc.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
Result := True;
end;
end;

function InitializeSetup(): Boolean;
begin
Result := CheckAppRun;
end;
Автор: DmitryKz
Дата сообщения: 16.04.2015 17:48
del
Автор: alloc22
Дата сообщения: 21.04.2015 21:53
Подскажите пожалуйста, как оставить "живым" окно инсталлятора во время выполнения программ из секции "Run"?


Код: [Run]
Filename: {app}\Temp\Pkzip.exe; WorkingDir: {app}; Parameters: "-add -store -dir=relative -NoZipExtension ""{app}\Modules\Ahkuilon.rvm"" ""{app}\Temp\Modules\Ahkuilon\*.*"""; StatusMsg: "Упаковка архива Ahkuilon.rvm..."; Flags: waituntilterminated skipifdoesntexist runhidden; Check: CheckError

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

Предыдущая тема: Только инсталлятор


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