Показать полную графическую версию : [архив] Inno Setup .:[все вопросы]:.
BlackSelf
16-05-2009, 05:20
p3rf3ct1c, путь к ProgramData в Висте и семерке обозначает константа {commonappdata}, то есть в твоем случае лучше написать так:
...................................
//Проверяем присутствие папки после удаления
If DirExists(ExpandConstant('{commonappdata}\2DBoy\WorldOfGoo')) then
...................................
p3rf3ct1c
16-05-2009, 12:05
BlackSelf,
Спасибо.
А вы можете подсказать почему у меня в Unpacker'е кнопки не работают, кроме кнопки "Открыть"?
Вешаю обработчик на изменение комбобокса "тип установки":
WizardForm.TypesCombo.OnChange := @TypesComboOnChange;
Перестает отрабатываться смена типов (компоненты не изменяются при изменении типа установки). Без обработчика все нормально. Как можно обойти проблему?
Перестает отрабатываться смена типов (компоненты не изменяются при изменении типа установки). Без обработчика все нормально. »Приведите пример, как вы делаете. Хотя теоретически, всё правильно, т.е. всё зависит от того, что вы пишите в процедуре TypesComboOnChange.
Задав свою процедуру вы переопределяете стандартную смену ComboBox'а, заданного по умолчанию.
От содержимого обработчика вообще ничего не зависит. Повесил пустой обработчик - 0 реакции.
procedure TypesComboOnChangeT(Sender: TObject); begin end;
procedure InitializeWizard();
begin
WizardForm.TypesCombo.OnChange := @TypesComboOnChangeT;
end;
Есть ли возможность вызвать эту стандартную процедуру или сделать ее эмуляцию?
з.ы. еще заметил, что из-за этого косяка не отрабатывается установка некоторых компонентов.
Есть ли возможность вызвать эту стандартную процедуру или сделать ее эмуляцию? »Вызвать стандартную - нет, придётся прописывать всё в ручную, а это...
заметил, что из-за этого косяка не отрабатывается установка некоторых компонентов. »такое скорей всего вряд ли, по крайней мере я не думаю, чтоб изменение в стандартной процедуре TypesCombo.OnChange, как-то влияло на саму установку.
А что вы вообще хотите задать в TypesComboOnChangeT, просто может это можно решить стандартными способами? Объясните, что вы хотите увидеть?
Итак, некоторое время назад, я писал здесь вопрос по поводу выбора языка (http://forum.oszone.net/post-1109583-670.html).
Я написал функцию, которая при показе формы "wpSelectComponents" перебирает компоненты и "насильно" выделяет "радиобатон" того языка, который был выбран как язык инсталлятора.
Есть в этом подходе косяк - при смене типа установки язык сбрасывается в "первоначальное" (т.е. то, каким бы он был без моего программного вмешательства) положение.
Вот на изменение комбобокса "тип установки" хочу повесить процедура проверки, которая будет возвращать нужный язык.
Итак, некоторое время назад, я писал здесь вопрос по поводу выбора языка.
Я написал функцию, которая при показе формы "wpSelectComponents" перебирает компоненты и "насильно" выделяет "радиобатон" того языка, который был выбран как язык инсталлятора. »Да, помню, было такое... Я подумал, что вы уже решили эту задачу...
Попробуйте такой вариант[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
SolidCompression=yes
;ComponentsListTVStyle=true
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
Name: eng; MessagesFile: compiler:Languages\English.isl
[Types]
Name: full; Description: Полная установка
Name: custom; Description: Выборочная установка; Flags: iscustom
[Components]
Name: a; Description: Моя программа™; Types: full custom
Name: a\a; Description: Руководство пользователя; Types: full
Name: a\a\a; Description: Русский; Flags: exclusive
Name: a\a\b; Description: English; Flags: exclusive
Name: a\b; Description: Справка; Types: full
[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Components: a
Source: compiler:Examples\Readme-ru.txt; DestDir: {app}; Components: a\a\a
Source: compiler:Examples\Readme-en.txt; DestDir: {app}; Components: a\a\b
Source: compiler:Examples\MyProg.chm; DestDir: {app}; Components: a\b
[_Code]
procedure InitializeWizard;
begin
if ActiveLanguage = 'rus' then
WizardForm.ComponentsList.Checked[2]:= True else
WizardForm.ComponentsList.Checked[3]:= True;
end;
Интегрировал Ваш пример в скрипт - не работает. Запустил в новом - работает.
Начал разбираться и нашел корень ошибки - невнимательность.
Выделение прыгало из-за следующего:
Name: language\english; Description: {cm:EnglishLanguage}; Types: type1 type2 type3; Flags: exclusive
Name: language\russian; Description: {cm:RussianLanguage}; Types: type1 type2 type3; Flags: exclusive
Забыл убрать, когда копировал.
Мой способ тоже работает, но ввиду громоздкости оставлю Ваш.
Спасибо :clapping:
Potursak
18-05-2009, 15:19
Какой камандой можно автоматически запустить файл после его установки?
Какой камандой можно автоматически запустить файл после его установки? »
[Run]
Filename: {app}\MyProg.exe; Description: Запустить программу MyProg?; Flags: postinstall nowait skipifsilent
Potursak
18-05-2009, 17:31
Serega_, а как сделать вот такие http://s47.radikal.ru/i117/0905/29/78b5a3145ad6.jpg кнопочки у меня вот такие http://s54.radikal.ru/i145/0905/bc/98251038fc6b.jpg
Отличие одних от других думаю вы знаете-по статусу положенно.Я нашел решение как открыть приложенеи после его установки сам:
[Run]
Filename: {win}\Musik.exe;
Тодга не будет создаватся такой диалог http://s45.radikal.ru/i109/0905/83/47020011a15bt.jpg (http://radikal.ru/F/s45.radikal.ru/i109/0905/83/47020011a15b.jpg.html)
Приложение просто запускается-проще!
а как сделать вот такие кнопочки»
На каждом компоненте либо задаче, в зависимости, где вам нужно, укажите флаг exclusive, например:
[Components]
Name: MyName; Description: Компонент #1; Flags: exclusive
либо
[Tasks]
Name: MyName; Description: Задача #1; Flags: exclusive
Potursak
18-05-2009, 18:25
boss911, это конечно я уверен правильно но почему у меня вот такая ошибка
http://s60.radikal.ru/i170/0905/af/b9432222bb8ct.jpg (http://radikal.ru/F/s60.radikal.ru/i170/0905/af/b9432222bb8c.jpg.html)
Potursak, приведите пример, кусок скрипта (всех строк компонентов или задач). В этот флаг указали только в секции Components, либо в Tasks, или еще где-то?
Potursak, ошибка говорит о том, что параметр флага, включает неизвестный флаг, т.е. вы просто записали не правильно слово exclusive или там присутствует ещё какой-то флаг...
boss911, правильно сказал, привидите пример своего скрипта.
Potursak
18-05-2009, 18:52
boss911,
[Types]
Name: "custom"; Description: "Выборочная установка"; Flags: exclusive
[Files]
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\1.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com1"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\2.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com2"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\3.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com3"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\4.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com4"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\5.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com5"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\6.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com6"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\7.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com7"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\8.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com8"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\9.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com9"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\10.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com10"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\11.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com11"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\12.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com12"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\13.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com13"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\14.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com14"; DestName: "ViOrb.exe";
Source: "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\{sys}\15.exe"; DestDir: "{win}"; Flags: deleteafterinstall ignoreversion ; Components: "Com15"; DestName: "ViOrb.exe";
Potursak, прочитайте внимательно, что вам говорил boss911,
[Components]
Name: MyName; Description: Компонент #1; Flags: exclusive
либо
[Tasks]
Name: MyName; Description: Задача #1; Flags: exclusive
»этот флаг используется только в этих секциях... зачем его записывать в секцию [Types]? У вас используется секция [Components], туда и записываете этот флаг, у тех компонентов, которые должны иметь RadioButton.
Potursak
18-05-2009, 21:55
Очень хочется разобратся как Проказзза в этой (http://forum.oszone.ru/thread-76170-26.html) теме сделал тихий инсталятор использующий INF файл для выбора памятки и сам файл установки Run.exe.
Для интеграции нужной памятки в дистрибутив, занесите нужную памятку в файл Run.inf
Components=com1 »
Как мне кажется там ссылка на файл идет с определенным параметром.
Potursak, в этом inf файле указывается, какой из компонентов устанавливать. Почитайте Справку: Параметры командной строки инсталлятора, ключи /SAVEINF и /LOADINF.
Или можете посмотреть у меня в подписи, нажмите на Inno Setup и там есть ссылка на Параметры командной строки инсталлятора.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC