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

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

Автор: nik1967
Дата сообщения: 06.08.2014 13:39
sega1971, в ярлыке это нельзя прописать.
А делается это так.
Автор: vint56
Дата сообщения: 06.08.2014 14:34
le9ent пример на ботве на картинке четбокс
http://rghost.ru/57318619
Автор: sega1971
Дата сообщения: 07.08.2014 09:32
nik1967
Спасибо. Буду пробовать
Автор: le9ent
Дата сообщения: 07.08.2014 16:47
[more] [more] [/more]

painter7, dragon1000, vint56 - спасибо вам получилось наложить на фон Tasks изображение.

Вот возник вопрос еще один.

К примеру в системе масштаб шрифтов - 100%
Есть выставить 125 - 150% то некоторые элементы масштабируются а вот фоновое изображение нет.

[more=Код элементов:]

Кнопки масштабируются:

with WizardForm.NextButton do begin
Left:=ScaleX(10);
Top:=ScaleY(565);
Width:=ScaleX(90);
Height:=ScaleY(25);
Parent:=WizardForm;
end;

Фоновое изображение не масштабируется:

var
Logo, Fon:TBitmapimage;

ExtractTemporaryFile('Fon.bmp');
WizardForm.Width:=ScaleX(600);
WizardForm.Height:=ScaleY(600);

Fon:=TBitmapImage.Create(WizardForm);
with Fon do begin
Left:=ScaleX(0);
Top:=ScaleY(0);
Width:=ScaleX(600);
Height:=ScaleY(600);
Parent:=WizardForm;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\Fon.bmp'));
end;

[/more]

Какие параметры можно добавить для изображения что бы фоновый рисунок масштабировался с остальными элементами? [/more]
Автор: jas1211
Дата сообщения: 07.08.2014 16:48
Добрый день!
Не давно начал юзать Inno Setup для нашего проекта.
Написал скрипт все отлично работает но есть небольшое НО после подписания setup-файла.
подписал, установил все ок.
вовремя работы наше приложение отправляет запрос на сервер о поисках новой версии.
если такова есть то он скачивает архивированный проект и заменяет нужные файлы.
все отрабатывает.
но если юзер хочет удалить ПО через панель управления. то выскакивает сообщение:
---------------------------
Error
---------------------------
Messages file "C:\Program Files (x86)\прога\unins000.msg" is missing. Please correct the problem or obtain a new copy of the program.
---------------------------
OK
---------------------------
Если убрать подписание инсталятора то все ок.
Можете направить куда копать.
Спасибо!
Автор: painter7
Дата сообщения: 09.08.2014 14:35

Цитата:
Какие параметры можно добавить для изображения что бы фоновый рисунок масштабировался с остальными элементами?


Код: [no]
var
Fon: TBitmapimage;
...
ExtractTemporaryFile('Fon.bmp');
WizardForm.Width:=ScaleX(600);
WizardForm.Height:=ScaleY(600);

Fon:=TBitmapImage.Create(WizardForm);
with Fon do
begin
Parent:=WizardForm;
Stretch:=True;
Left:=ScaleX(0);
Top:=ScaleY(0);
Width:=ScaleX(600);
Height:=ScaleY(600);
Bitmap.LoadFromFile(ExpandConstant('{tmp}\Fon.bmp'));
end;
[/no]
Автор: AlekseyPopovv
Дата сообщения: 10.08.2014 22:33
Ребята помогите решить проблему: скрипт собирается, файл запускается всё устанавливается. Ошибка возникает при удалении после окошка "Нажмите кнопку "OK" и удалите не нужные Вам параметры программы {#MyAppName} {#MyAppVersion}.". Скрипт на две программы (Beauty.Checked и Brightness.Checked). Как решить эту проблему?

[Messages]
UninstalledAll=Нажмите кнопку "OK" и удалите не нужные Вам параметры программы {#MyAppName} {#MyAppVersion}.

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Beauty Guide');
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Beauty Guide');
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Beauty Guide');
if Beauty.Checked then
RemoveDir(ExpandConstant('{group}'));
end;
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Удалить Ваши настройки Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Beauty.Checked then
DelTree(ExpandConstant('{userappdata}\BeautyGuide'), True, True, True);
end;
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Удалить плагины Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Beauty.Checked then
DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BeautyGuidePlugin.8bf'));
DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BeautyGuidePlugin64.8bf'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
RemoveDir(ExpandConstant('{pf}\Tint Guide'));
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Программа {#MyAppNameBeauty} {#MyAppBeautyVersion} удалена!',mbconfirmation, mb_ok) = IDYES then
end;
end;
end;
end;
end;
end;
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Brightness Guide');
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Brightness Guide');
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Brightness Guide');
if Brightness.Checked then
RemoveDir(ExpandConstant('{group}'));
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Удалить Ваши настройки Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Brightness.Checked then
DelTree(ExpandConstant('{userappdata}\BrightnessGuide'), True, True, True);
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Удалить плагины Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Brightness.Checked then
DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BrightnessGuidePlugin.8bf'));
DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BrightnessGuidePlugin64.8bf'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
RemoveDir(ExpandConstant('{pf}\Tint Guide'));
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Программа {#MyAppNameBrightness} {#MyAppBrightnessVersion} удалена!',mbconfirmation, mb_ok) = IDYES then
end;
end;
end;
end;
end;
end;
end;
end;
Автор: zazaka5
Дата сообщения: 13.08.2014 08:15
очень нужна помощь в создании инсталлятора, похожего нигде не нашел, готов заплатить, напишите кто хорошо разбирается ICQ 693128042 или в личку
Автор: RussaKKinG
Дата сообщения: 14.08.2014 04:32
Помогите...
Подскажите скрипт для Inno setup что бы когда при выборе (в компонентах) наводишь курсор (пример на прицел) Показывалась картинка с этим прицелом.. .
И куда его нужно вписать?
Автор: nik1967
Дата сообщения: 14.08.2014 10:15
RussaKKinG, Ссылка
Автор: AlekseyPopovv
Дата сообщения: 14.08.2014 11:18
Ребята помогите решить проблему: скрипт собирается, файл запускается всё устанавливается. Ошибка возникает при удалении после окошка "Нажмите кнопку "OK" и удалите не нужные Вам параметры программы {#MyAppName} {#MyAppVersion}.". Скрипт на две программы (Beauty.Checked и Brightness.Checked). Как решить эту проблему?

[Messages]
UninstalledAll=Нажмите кнопку "OK" и удалите не нужные Вам параметры программы {#MyAppName} {#MyAppVersion}.

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Beauty Guide');
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Beauty Guide');
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Beauty Guide');
if Beauty.Checked then
RemoveDir(ExpandConstant('{group}'));
end;
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Удалить Ваши настройки Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Beauty.Checked then
DelTree(ExpandConstant('{userappdata}\BeautyGuide'), True, True, True);
end;
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Удалить плагины Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Beauty.Checked then
DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BeautyGuidePlugin.8bf'));
DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BeautyGuidePlugin64.8bf'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
RemoveDir(ExpandConstant('{pf}\Tint Guide'));
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Программа {#MyAppNameBeauty} {#MyAppBeautyVersion} удалена!',mbconfirmation, mb_ok) = IDYES then
end;
end;
end;
end;
end;
end;
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Brightness Guide');
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Brightness Guide');
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Brightness Guide');
if Brightness.Checked then
RemoveDir(ExpandConstant('{group}'));
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Удалить Ваши настройки Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Brightness.Checked then
DelTree(ExpandConstant('{userappdata}\BrightnessGuide'), True, True, True);
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Удалить плагины Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Brightness.Checked then
DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BrightnessGuidePlugin.8bf'));
DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BrightnessGuidePlugin64.8bf'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
RemoveDir(ExpandConstant('{pf}\Tint Guide'));
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Программа {#MyAppNameBrightness} {#MyAppBrightnessVersion} удалена!',mbconfirmation, mb_ok) = IDYES then
end;
end;
end;
end;
end;
end;
end;
end;
Автор: RussaKKinG
Дата сообщения: 14.08.2014 18:39
Подскажите как сделать что бы при создании инсталера появдядся один файд инсталлера а не 2...
Автор: painter7
Дата сообщения: 14.08.2014 18:57
RussaKKinG
вы про *.bin файлы?

Код: [no][Setup]
...
DiskSpanning=False[/no]
Автор: sjwrec
Дата сообщения: 14.08.2014 20:04
Всем привет!

Наверное мой модульный скрипт уже никому нафиг не нужен, но если кто-то ждал нового релиза модульника. То представляю Вам:

ENGINE 6.3 R6 - в примере использовалась игра Watch_Dogs

Скачать 9.3 Мб

Работа скрипта проверена на: Windows 8.1 x64
Необходимая версия для компилляции: Inno Setup 5.5.1.ee1 (ANSI) ResTools
Автор: demmax2004
Дата сообщения: 15.08.2014 12:14
Подскажите пожалуйста
Создаю
CustomPage := CreateCustomPage(wpInstalling, '', '');
В которой создаю 2 комбобокса, так вот в зависимости от WizardForm.TypesCombo.itemIndex
нужно один скрывать, другой показывать.

Только не могу понять как получить событие OnShowCustomPage, т.е. событие когда показывается кастомная страница.
Автор: sjwrec
Дата сообщения: 15.08.2014 12:32
demmax2004
Обработка страниц производится так:


Код:
Procedure CurPageChanged(CurPageID: Integer);
Begin
If (CurPageID=CustomPage.ID) then // CustomPage.ID - это и есть ваша страница.
begin
//Здесь пишите что нужно выполнить
end;
end;
Автор: RussaKKinG
Дата сообщения: 15.08.2014 16:40
Помогите сделать что бы, можно было устанавлевать не только всё или нечего но и отдельно некоторые файлы... (Как сделать такой флажок как джов?)
Вот пример как это сделал Jove...
http://f-picture.net/lfp/s020.radikal.ru/i713/1408/46/a92ff7643291.png/htm
Подскажите какой скрипт он использовал?
И куда его вставить?

Добавлено:
Как исправить ошибку, когда я в компонентах выбираю один файл у меня устанавлеваются все....
Как это исправить?
Автор: sjwrec
Дата сообщения: 15.08.2014 17:35
RussaKKinG

Цитата:
Как исправить ошибку, когда я в компонентах выбираю один файл у меня устанавлеваются все.... Как это исправить?


А флаг Exclusive используете чтобы указать инсталлу что нужен только этот файл?
Автор: RussaKKinG
Дата сообщения: 15.08.2014 17:44
Да, но это не помогает!
Автор: sjwrec
Дата сообщения: 15.08.2014 17:48
RussaKKinG
Вроде всё верно. Странно...
Автор: RussaKKinG
Дата сообщения: 15.08.2014 18:00

Цитата:
sjwrec

[Components]
Name: KMP; Description: VOTESNIPER MOD PACK;
Name: KMP\P; Description: Ïðèöåëû;
Name: KMP\P\1; Description: 1. JOVE; Flags: exclusive
Name: KMP\P\2; Description: 2. Ïðèöåë êàê ó 40 òîíí; Flags: exclusive
Name: KMP\P\3; Description: 3. Ïðèöåë TAIPAN; Flags: exclusive
Вот часть компонентов...
Автор: sjwrec
Дата сообщения: 15.08.2014 18:23
RussaKKinG
Получается KMP - это главный флажок.
p - подгруппа
1 - эксклюзивный компонент

Хотелось бы ещё кусок секции Files глянуть - может ошибки там.
Автор: dodakaedr
Дата сообщения: 15.08.2014 18:54

Цитата:
Как исправить ошибку, когда я в компонентах выбираю один файл у меня устанавлеваются все....
Как это исправить?


Для каждого соответсвующего файла нужно в секции [Files] прописать Components:
Пример: Source: "MYPROG.EXE"; DestDir: "{app}"; Components: main
Автор: RussaKKinG
Дата сообщения: 15.08.2014 19:37
[more]
Код: Source: "C:\Users\Boss\Desktop\mods\Ïðèöåëû\Jove\res_mods\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\P\1;
Source: "C:\Users\Boss\Desktop\mods\Ïðèöåëû\Ïðèöåë êàê ó 40 òîíí\res_mods\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\P\2;
Source: "C:\Users\Boss\Desktop\mods\Ïðèöåëû\Ïðèöåë TAIPAN\res_mods\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\P\3;
Автор: sjwrec
Дата сообщения: 15.08.2014 20:18
RussaKKinG
Кидайте, гляну.
Автор: RussaKKinG
Дата сообщения: 17.08.2014 18:12

Цитата:
sjwrec

Спс сам уже разобрался...

Добавлено:
Как сделать что бы не устанавлевалась удалялка?
Автор: nik1967
Дата сообщения: 17.08.2014 20:54
RussaKKinG,

Код: [Setup]
Uninstallable=no
Автор: RussaKKinG
Дата сообщения: 17.08.2014 21:18
Подскажите как сделать путь для МОД ПАКА
Вот у меня стандартный пусть C:\Games\World_of_Tanks
А когда я например выбираю эту игру на другом диске, то пишет примерно так E:\Games\World_of_Tanks\World_of_Tanks

Когда я меняю путь пишет 2 раза World_of_Tanks\World_of_Tanks
Как это исправить?

Добавлено:
Подскажите как сделать что бы инсталер нашел файл (папку) нужную мне (Это мод пак и надо что бы он искал игру) и сам указал путь к ней

Подробно куда и что вписывать плиз
Автор: sjwrec
Дата сообщения: 18.08.2014 01:17
RussaKKinG
Дублирование пути - извечная проблема, единственный выход, не выбирать конечную папку, т.е
заместо E:\Games\World_of_Tanks выбирать только E:\Games, а \World_of_Tanks допишется автоматически.

1. Если игра после установки записывает путь к игре в реестр и вы знаете этот ключ, то написать считывание пути фигня вопрос.

2. Другое дело поиск нужной папки, тогда используется комманда FindFirst, примера поиска у меня нет.
Автор: painter7
Дата сообщения: 18.08.2014 02:25
RussaKKinG, ну еще есть и:

Код:
[Setup]
...
AppendDefaultDirName=False

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

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


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