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

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

Автор: innonewbie
Дата сообщения: 08.07.2014 10:28
AlekseyPopovv, а через секцию [Registry] и Flags: uninsdeletekeyifempty не проще?
Root: HKCU; SubKey: SOFTWARE\Teorex; Flags: uninsdeletekeyifempty
Root: HKCU; SubKey: SOFTWARE\Teorex\Inpaint; Flags: uninsdeletekey;
Автор: AlekseyPopovv
Дата сообщения: 08.07.2014 12:17
Да проще, но надо через Code.
Автор: dragon1000
Дата сообщения: 08.07.2014 13:16
Cyb3rM4n, painter7, тоже была нужна такая кнопка спасибо )

Автор: VkusnayaSolanka
Дата сообщения: 08.07.2014 13:18
Доброго времени суток уважаемые пользователи, хотел бы узнать у опытных людей как решить такую проблему (заранее спасибо за ответы):

При использовании дополнения ISSkin - скина для украшения установщика пропадает полоса прокрутки со страницы с InfoBeforeFile.

Ну как бы она видна но ее прокрутить нельзя и если нажать кнопку далее и вернуться назад на эту страницу то она вообще просто пропадает. Как можно вернуть прокрутку?

Использую расширенную версию Inno Setup от Restools.

Начатый пример:

https://cloud.mail.ru/public/ef4b6ac31fcc/%D0%A2%D0%B5%D1%81%D1%82.zip
Автор: Ludens
Дата сообщения: 09.07.2014 17:37
July 9, 2014 - Inno Setup 5.5.5 released.
Автор: AlekseyPopovv
Дата сообщения: 09.07.2014 22:13
Как убрать окошко в конце деинсталляции с надписью "Программа такая такая была полностью удалена с вашего компьютера"?
Автор: boss911
Дата сообщения: 10.07.2014 12:54
Пытаюсь реализовать следующие:

Код: [UninstallRun]
Filename: {reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{7A3C7E05-EE37-47D6-99E1-2EB05A3DA3F7%7d,ModifyPath}; Flags: skipifdoesntexist
Автор: AlekseyPopovv
Дата сообщения: 10.07.2014 14:42
Ребята, кто ни будь поможет?
Как сделать, что бы при деинсталляции была проверка реестра (к примеру деинсталлятор удаляет ветку 'Software\Teorex\Inpaint') и ещё нужно удалить ветку реестра 'Software\Teorex' - но только если она пустая! Как это сделать?
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usPostUninstall) then
begin
RegDeleteKeyIncludingSubkeys(HKCU, 'Software\Teorex\Inpaint');
end;
end;
Автор: bugron
Дата сообщения: 11.07.2014 13:46
Всем привет!
Обновил справку для Inno в соответствии с последней версией (5.5.5). Прошу обновить ссылку в шапке.
Автор: AlekseyPopovv
Дата сообщения: 11.07.2014 13:51
Как одним сообщением удалить два файла с разных папок?

if (CurUninstallStep = usDone) then
begin
if MsgBox('Удалить плагины Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BeautyGuidePlugin.8bf'));
DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins\BeautyGuidePlugin64.8bf'));

и было бы интересно как после этого удалить эти пустые папки?

Вопрос снят, допетрил.
Автор: Habib2302
Дата сообщения: 12.07.2014 18:28

Цитата:
Inno Setup 5.5.5

блин. когда выйдет расширенная версия?
Автор: leserg73
Дата сообщения: 12.07.2014 22:01
Наверное уже никогда. Товарищ Chen Weixin не отвечает на письма. Последнее письмо от него получил 19 октября 2012 года ("Thanks for your support."). После этого как в воду канул.
Автор: BigMuisc
Дата сообщения: 13.07.2014 02:02
Помогите с инсталятором, нужно прикрутить компонеты к скрипту

Очень долго мучаюсь не могу понять как правильно это делать, скайп для связи: liked477
Заранее большое спасибо!

или хотя бы образец бы найти где так сделано под такой же скрипт

Скрипт - Ссылка

Образец страницы компонентов - Ссылка

http://liked.ucoz.com/122877a4.jpg
Автор: alek11111
Дата сообщения: 15.07.2014 08:02
Подскажите пожайлуста, как создать нужную иконку в списке удаления программ в винде.
Автор: AtotIK
Дата сообщения: 15.07.2014 22:25
BigMuisc, уже и сюда забрался?
Автор: innonewbie
Дата сообщения: 16.07.2014 14:30
alek11111, если я правильно понял, то в секции [setup] прописать UninstallDisplayIcon={app}\файл иконки.ico(.exe, если иконка будет с exe файла)
Автор: Re0g
Дата сообщения: 17.07.2014 22:28
Подскажите пожайлуста, как на странице инсталятора расположить вертикально текст?
Автор: Serega0675
Дата сообщения: 18.07.2014 19:25

Цитата:
С кавычками игрался, может что-то не правильно делал

boss911, попробуй так [more=Пример]

Код:
[UninstallRun]
Filename: {code:MsiUninstallProg}; Parameters: {code:MsiUninstallParam}; Flags: skipifdoesntexist

[Code]
const
SubKey = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{7A3C7E05-EE37-47D6-99E1-2EB05A3DA3F7}';

function MsiUninstallProg(s: string): string;
var
ResultStr: string;
begin
Result := '';
if RegQueryStringValue(HKLM, SubKey, 'ModifyPath', ResultStr) and (ResultStr <> '') then
begin
if Pos(' /', ResultStr) > 0 then
SetLength(ResultStr, Pos(' /', ResultStr)-1);
Result := ResultStr;
end;
end;

function MsiUninstallParam(s: string): string;
var
ResultStr: string;
begin
Result := '';
if RegQueryStringValue(HKLM, SubKey, 'ModifyPath', ResultStr) and (ResultStr <> '') then
if Pos(' /', ResultStr) > 0 then
begin
Delete(ResultStr, 1, Pos(' /', ResultStr));
Result := ResultStr;
end;
end;
Автор: AlekseyPopovv
Дата сообщения: 18.07.2014 20:04
Ребята, почему версия 5.5.5 пишет неизвестный тип - TNewGroupBox?
Автор: Serega0675
Дата сообщения: 18.07.2014 20:09
AlekseyPopovv
Цитата:
Как убрать окошко в конце деинсталляции с надписью "Программа такая такая была полностью удалена с вашего компьютера"?

Есть два варианта:
1. Поиск нужного сообщения через FindWindow... и нажатия автоматом кнопки "ОК"
2. Пишите свой, псевдодеинсталлятор с нужными вам страницами и сообщениями, а в нужный момент запускаете родной деинсталлтор с ключом /verysilent

Добавлено:
AlekseyPopovv
Цитата:
почему версия 5.5.5 пишет неизвестный тип - TNewGroupBox?

Не всё новое - хорошо... бывают глюки.
У меня складывается устойчивое впечатление, чем выше версия тем больше нужно "заплаток"...
Автор: Re0g
Дата сообщения: 18.07.2014 22:17
Добавлено:
Serega0675

Цитата:
Если коротко, то копируете стандартный текст в переменную, создаёте свои контролы и по одной букве вставляете текст.

А нет ли какого-либо примера? Спасибо.
Автор: alek11111
Дата сообщения: 19.07.2014 08:09

Цитата:
alek11111, если я правильно понял, то в секции [setup] прописать UninstallDisplayIcon={app}\файл иконки.ico(.exe, если иконка будет с exe файла)


Да, спасибо, помогло!
Автор: MihailM
Дата сообщения: 20.07.2014 19:06
1.Хотелось бы узнать , есть ли изменения в новом InnoSetup при компиляции. А то взял старый скрипт года 2012 наверное , так при компиляции вылезает ошибка точнее в BassModule.iss (BASS v 1.1 от Shegorat [12.01.2011] ) , вроде этот в скрипте .

Компилирую InnoSetup 5.5.1 ее2 (u) build 121002 , от ResTools
Можно как то исправить ?
2. Можно, как-то скачать файл из интернета(URL) без использование доп. dll. А то попробовал InnoTools Downloader 0.3.5 , так что то ничего не получается .. Может быть есть какая нибудь замена - попроще чтоб была !
3. Есть вот этот код [more=Читать дальше..][no]
Дополнительная страничка с выводом данных !
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:InnoSetupTest.

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

[Code]
var
Page: TInputQueryWizardPage;
UserName: String;

procedure CreateNickPage();
begin
// function CreateInputQueryPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String): TInputQueryWizardPage;
// AfterID = определяет после какой страницы будет показана создаваемая
Page := CreateInputQueryPage(wpWelcome, SetupMessage(msgWizardUserInfo),
SetupMessage(msgUserInfoDesc), SetupMessage(msgUserInfoNameRequired));

Page.Add('NickName:', False);
Page.Values[0] := ExpandConstant('{sysuserinfoname}');

// Read values into variables
UserName := Page.Values[0];
end;

procedure InitializeWizard();
begin
CreateNickPage();
end; [/no][/more]
Можно заменить как то заменить Текстовое поле на ListBox или ComboBox , и уже из них считывать index , значение ?
Если кто знает помогите с кодом !
Заранее благодарен !
Автор: Victor_VG
Дата сообщения: 20.07.2014 19:23
MihailM

В Whats new? и в документацию заглянуть не пробовали?
Автор: MihailM
Дата сообщения: 20.07.2014 20:04
Victor_VG, дополнил 1 вопрос ..
Спасибо , ну я хотел найти решение своей проблемки !
Автор: painter7
Дата сообщения: 21.07.2014 17:57

Цитата:
Компилирую InnoSetup 5.5.1 ее2 (u) build 121002 , от ResTools  
Можно как то исправить  ?

MihailM, написано же в документации, тип PChar переименовали в PAnsiChar, вот и переименуйте у себя.

Цитата:
А то попробовал InnoTools Downloader 0.3.5 , так что то ничего не получается .. Может быть есть какая нибудь замена - попроще чтоб была !

Там же есть примеры, есть и в Inno Setup QuickStart Pack загрузка с примером готовым.

Цитата:
 Можно заменить как то заменить Текстовое поле на ListBox или ComboBox

Там тип страницы TInputQueryWizardPage, в ней нет ComboBox'a.
Набросать свою страницу, если ComboBox нужен, как-то так:
[more]
Код: [no]
[CustomMessages]
lblCaption=Select User
lblDescription=Select user and click Next
lblUser=User Name:
userline0=Test User #1
userline1=Test User #2
userline2=Test User #3
userline3=Test User #4

[Code]
var
lblUser: TLabel;
cbUser: TComboBox;
UserName: String;

function UserPageShouldSkipPage(Page: TWizardPage): Boolean;
begin
Result := False;
end;

function UserPageBackButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;

function UserPageNextButtonClick(Page: TWizardPage): Boolean;
begin
UserName := cbUser.Text;
Result := True;
end;

function CreateUserPage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(
PreviousPageId,
ExpandConstant('{cm:lblCaption}'),
ExpandConstant('{cm:lblDescription}'));

lblUser := TLabel.Create(Page);
with lblUser do
begin
Parent := Page.Surface;
Caption := ExpandConstant('{cm:lblUser}');
Left := ScaleX(0);
Top := ScaleY(19);
Width := ScaleX(56);
Height := ScaleY(13);
end;

cbUser := TComboBox.Create(Page);
with cbUser do
begin
Parent := Page.Surface;
Left := ScaleX(64);
Top := ScaleY(16);
Width := ScaleX(337);
Height := ScaleY(21);
Style := csDropDownList;
TabOrder := 0;
Items.Add(ExpandConstant('{cm:userline0}'));
Items.Add(ExpandConstant('{cm:userline1}'));
Items.Add(ExpandConstant('{cm:userline2}'));
Items.Add(ExpandConstant('{cm:userline3}'));
ItemIndex := 0;
end;

with Page do
begin
OnShouldSkipPage := @UserPageShouldSkipPage;
OnBackButtonClick := @UserPageBackButtonClick;
OnNextButtonClick := @UserPageNextButtonClick;
end;

Result := Page.ID;
end;

procedure InitializeWizard();
begin
CreateUserPage(wpWelcome);
end;
[/no]
Автор: MihailM
Дата сообщения: 22.07.2014 13:09
painter7,
п.3 Я так и хотел попробовать сделать , просто с тонкостями программирования не знаком ..

Ok , Спасибо .. Буду разбираться !
Автор: TDK2015
Дата сообщения: 22.07.2014 21:17
Подскажите пожалуйста как сделать Деинсталлятор как у NSIS
http://s019.radikal.ru/i618/1407/5e/a9d460d6fd16.png
Автор: demmax2004
Дата сообщения: 24.07.2014 07:31
Подскажите пожалуйста, необходимо при запуске инсталлятора предлагать разный сценарий установки, т.е. это например:
1. Программа А - минимальная установка
Компоненты для установки (настраиваемый выбор компонентов):
Компонент 1
Компонент 2
Компонент 3

2. Программа А - максимальная установка
Компоненты для установки (настраиваемый выбор компонентов):
Компонент 4
Компонент 5
Компонент 6

3. Plugin для программы Х
Компоненты для установки (настраиваемый выбор компонентов):
Компонент 7
Компонент 8

4. Plugin для программы Y
Компоненты для установки (настраиваемый выбор компонентов):
Компонент 9

5. Plugin для программы Z
Компоненты для установки (настраиваемый выбор компонентов):
Компонент 10
Компонент 11
Компонент 12


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

Как сделать такое.
Автор: MentalWarrior
Дата сообщения: 24.07.2014 12:51
Не нашёл на скорую руку такой момент, хочу проконсультироваться. Есь секция [icons]. С её помощью создаю значки/ярлычки на столе и меню "Программы". Так вот мне нужно в зависимости от языка системы (региона) чтобы некоторые из них были на русском языке для русскоязычной винды и на английском для англоязычной. Можно это как-то лёгким движением руки сделать?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

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


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