|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3] |
|
Скрипты Inno Setup. Помощь и советы [часть 3]
|
Ветеран Сообщения: 1133 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 |
|
------- Отправлено: 00:28, 04-11-2010 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Лександер,
Так это и есть снаружи, параметр z передаешь инсталлеру, InitializeSetup проверяет задан ли он (в виде \z, /z, -z), если есть такой переменной paramZ присваивается Тру И вот тут у меня ошибочка, paramZ : boolean; должен объявляться в начале секции Code что быть доступным все функциям. Потом в конце установки (процедура CurStepChanged) если параметр тру - выполняем чего там хотели. Цитата Лександер:
[Components] # define haaliaviDesc "Haali - воспроизводить avi" Name: haaliavi; Description: {#haaliaviDesc}; Check: HaaliExists [_Code] var paramZ, silent, haaliavi : integer; function InitializeSetup(): Boolean; var i : integer; s, st : string; begin paramZ:= -1; silent:= -1; haaliavi := -1; // три состояния: -1 - не изменялось, 0 - нет, 1 - да for i:=2 to ParamCount do begin if ( (Lowercase(ParamStr(i)) = Lowercase('/silent')) or (Lowercase(ParamStr(i)) = Lowercase('/verysilent')) ) then begin silent := 1; break; end; end; for i:=2 to ParamCount do begin st := Lowercase(ParamStr(i)); StringChangeEx(st, '/', '', True); StringChangeEx(st, '\', '', True); StringChangeEx(st, '-', '', True); case st of Lowercase('z') : paramZ := 1; Lowercase('haaliavi') : haaliavi := 1; end; end; end; procedure InitializeWizard(); if (silent = 1) then begin if ( (haaliavi = 1) and haaliexists) then WizardForm.ComponentsList.Checked[WizardForm.ComponentsList.Items.IndexOf('{#haaliaviDesc}')]:=True; end; end; procedure CurStepChanged(CurStep: TSetupStep); var res : integer; begin if ( CurStep=ssDone) and (paramZ = 1) ) then Exec('x.exe', ' /z ' ,ExpandConstant('{...}'),SW_HIDE,ewWaitUntilTerminated,res); end; |
|
------- Отправлено: 13:57, 06-01-2011 | #391 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать R.i.m.s.k.y., Я неточно выразился, а что если для разных случаев нужно разные параметры? Для одного случая один ключ, для другог другой...
|
------- Отправлено: 14:31, 06-01-2011 | #392 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата Лександер:
|
|
------- Отправлено: 14:49, 06-01-2011 | #393 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать R.i.m.s.k.y., Смотри, комуто нужно ставить с ключем \z, комуто \r, комуто \a, комуто \s, и может еще полтора десятка, я не говорю о возможности их комбинации - можно это как-то реализовать? Или каждый ключ и комбинацию в коде прописывать?
|
------- Отправлено: 16:27, 06-01-2011 | #394 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата Лександер:
инно понимает параметры только со слэшэм "/", т.е. если ему написать -silent или \silent он не поймет. В моем примере выше собственные параметры можно писать вообще одной буквой z, но параметры инно надо писать как положено, /norestart к примеру. |
|
------- Отправлено: 17:55, 06-01-2011 | #395 |
Пользователь Сообщения: 129
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y.,
брат, насколько знаю вместо [_code] в скрипте должен быть [code], а в конце вместо ; ТОЧКА. Если да, то во время компиляции пишет unknown identifier 'x' |
Отправлено: 19:03, 06-01-2011 | #396 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата vahe-91:
Цитата vahe-91:
если есть ошибки - исправь код, брат, он не кусается. Цитата vahe-91:
|
|||
------- Отправлено: 20:02, 06-01-2011 | #397 |
Пользователь Сообщения: 129
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y.,
спасибо, ты очень добр |
Отправлено: 20:15, 06-01-2011 | #398 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать Здравствуйте, уважаемые форумчане! Подскажите, как можно организовать постоянное сканирование реестра и файлов, а не только в момент запуска инсталлятора? Для чего:
if RegValueExists({#ValueExists}) then if RegQueryStringValue({#ValueExists}, GamePath) then if FileExists({#FileExists}) then GameAlreadyInstall:=True else GameAlreadyInstall:=False; С помощью операторов while и do пробовал зациклить, но не могу условия сообразить. А для чего? Делаю авторан на Inno, если нет записи в реестре - установить игру, авторан сворачивается, после установки игры (и соответственно появления записи в реестре) авторан разворачивается и - запустить игру. В AutoPlay Media Studio всё это реализуется довольно просто, но мне надо в Inno ![]() |
Отправлено: 21:03, 06-01-2011 | #399 |
Пользователь Сообщения: 129
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y.,
для примера скомпилировал это, ничего не получилось. Установщик даже не запускается. Что не правильно ? [Setup] AppId={{5B88473B-FA3C-4A80-8D78-C8960C9C3377} AppName=X AppVersion=1.0.0 AppPublisher=Ya CreateAppDir=no OutputBaseFilename=setup Compression=none [Files] Source: "C:\Documents and Settings\Administrator\Desktop\x.exe"; DestDir: "{tmp}"; Flags: ignoreversion [_Code] var paramZ:boolean; function InitializeSetup(): Boolean; var i:integer; x,s, st:string; begin for i:=2 to ParamCount do begin st:=Lowercase(ParamStr(i)); StringChangeEx(st, '/', '', True); StringChangeEx(st, '\', '', True); StringChangeEx(st, '-', '', True); case st of Lowercase('z') : paramZ := true; end; end; end; procedure CurStepChanged(CurStep: TSetupStep); var res : integer; begin if (CurStep=ssDone) and (paramZ) then Exec('{tmp}\x.exe', ' /z ' ,ExpandConstant('{...}'),SW_HIDE,ewWaitUntilTerminated,res); end; end. |
Последний раз редактировалось vahe-91, 06-01-2011 в 22:03. Отправлено: 21:44, 06-01-2011 | #400 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Утилиты - [addon] Inno Setup | CrOsP | Наборы обновлений для Windows XP/2003/Windows 7 | 33 | 11-05-2011 16:03 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 | |
Inno Setup 5.3.6 | OSZone Software | Новости программного обеспечения | 0 | 15-11-2009 17:30 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|