|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Скрипты Inno Setup. Помощь и советы [часть 4]
|
Ветеран Сообщения: 1271 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Продолжение обсуждения Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Отправлено: 18:01, 29-08-2011 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата Devils Night:
function netfw35(): Boolean; begin if ( RegKeyExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5') ) then Result := True else Result := False; end; Function InitializeSetup: Boolean; var res, i : Integer; Begin result:=true;//шоп не закрылся инсталлер if (not netfw35) then begin MsgBox('Net.Framework 3.5 не найден, нажмите ОК для установки', mbInformation, MB_OK); Exec(ExpandConstant('{src}\Others\dotnet35.exe'), ' /q /passive /norestart',ExpandConstant('{src}\Others\'),SW_show, ewWaitUntilTerminated, res); result:=true;//шоп не закрылся инсталлер end;//if (not netfw35) end; //InitializeSetup |
|
------- Последний раз редактировалось R.i.m.s.k.y., 06-12-2011 в 08:46. Отправлено: 08:12, 06-12-2011 | #331 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Забанен Сообщения: 216
|
|
Отправлено: 12:27, 06-12-2011 | #332 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата Devils Night:
тебе надо чтобы закрылся или чтобы поставил фреймворк и продолжил? вверху - поставит и продолжит если хочешь чтобы закрылся - убери Exec и исправь if (not netfw35) then begin ... result:=false; ... кстати зря закомменил "шоп не закрылся инсталлер", если какой-то шаг вернет false в результате ошибки вызова, то без этой строчки InitializeSetup тоже может получить на выходе false и инсталлер закроется ворчание моде он народ, где вы так писать научились, а? зато никто не забывает попинать бабу-ЕГЭ книжки бы хоть почитали, грамотные, как предложения строятся, как мысль из мозга переносится на бумагу/клавиатуру хотя если учесть, что написанная мысль - есть мысль измышленная, я даже боюсь представить что там измышляется |
|
------- Последний раз редактировалось R.i.m.s.k.y., 06-12-2011 в 12:49. Отправлено: 12:39, 06-12-2011 | #333 |
Пользователь Сообщения: 91
|
Профиль | Сайт | Отправить PM | Цитировать Помогите, пожалуйста, доработать, исправить, "усовершенствовать" скрипт!
Или поделитесь какими-нибудь другими кодами создания индикаторов процесса "для секции [Run]" ПРОБЛЕМА: Индикатор работает НЕ на всех темах!!! [Setup] AppName=MyProg AppVerName=MyProg DefaultDirName={pf}\MyProg OutputDir=. Compression=lzma/ultra SolidCompression=yes [Languages] Name: russian; MessagesFile: compiler:Languages\Russian.isl [Files] Source: compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion [code] function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall'; function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall'; const PBM_SETMARQUEE = $040A; GWL_STYLE = -16; PBS_MARQUEE = $08; var AnimatePb: TNewProgressBar; procedure CreateAnimatePb; begin AnimatePb := TNewProgressBar.Create(WizardForm); with AnimatePb do begin Parent := WizardForm.InstallingPage; SetBounds(WizardForm.ProgressGauge.Left, WizardForm.ProgressGauge.Top + WizardForm.ProgressGauge.Height + ScaleY(10), WizardForm.ProgressGauge.Width, WizardForm.ProgressGauge.Height); SetWindowLong (AnimatePb.Handle, GWL_STYLE, (GetWindowLong (AnimatePb.Handle, GWL_STYLE) or PBS_MARQUEE)); SendMessage(AnimatePb.Handle, PBM_SETMARQUEE, 1, 20); end; end; procedure AnimatePbMsg(const msg: string); begin if AnimatePb = nil then CreateAnimatePb; WizardForm.FilenameLabel.Caption := msg; end; procedure AnimatePbFree; begin if AnimatePb <> nil then begin AnimatePb.Free; AnimatePb := nil; end; end; [Run] Filename: {app}\MyProg.exe; BeforeInstall: AnimatePbMsg('Создание файла...'); Flags: skipifsilent Filename: {app}\MyProg2.exe; BeforeInstall: AnimatePbMsg('Создание файла...'); Flags: skipifsilent Filename: {app}\MyProg3.exe; BeforeInstall: AnimatePbMsg('Создание файла...'); AfterInstall: AnimatePbFree; Flags: skipifsilent ПРОБЛЕМА: Индикатор работает НЕ на всех темах!!! А также: 1. Нужно поднять индикатор выше, чтобы он был на том же самом месте, что и оригинальный и выглядел также. 2. Убрать сообщения, т.к. я использую "StatusMsg", а если не использовать, то появится сообщение "Завершение установки" 3. Сделать кнопку "Отмена" активной и вернуть возможность прерывания процесса установки. Если нельзя ничего этого сделать, поделитесь какими-нибудь другими кодами создания индикаторов процесса "для секции [Run]" У меня из секции [Run], выполняется ещё куча команд в скрытом режиме, которая занимает довольно много времени, поэтому нужна какая-то индикация... ИЛИ МОЖЕТ ЕСТЬ КАКОЙ-НИБУДЬ ДРУГОЙ СПОСОБ, для запуска и выполнения дополнительных операций, во время и/или после установки, НЕ обязательно из секции [Run] со стандартной индикацией процесса?! |
Отправлено: 18:49, 07-12-2011 | #334 |
Забанен Сообщения: 216
|
Цитата R.i.m.s.k.y.:
Цитата R.i.m.s.k.y.:
Цитата R.i.m.s.k.y.:
|
|||
Отправлено: 07:46, 08-12-2011 | #335 |
Пользователь Сообщения: 91
|
Профиль | Сайт | Отправить PM | Цитировать Посмотрите, пожалуйста, мой скрипт, - проверьте, исправьте если, что нужно и скажите, что да, как!
За гламуром вообще НЕ гонюсь... наоборот, всё должно быть компактно, аккуратно и близко к оригиналу... http://rghost.ru/33759851 Если есть более, простой способ всех проведённых мною манипуляций, то подскажите, пожалуйста! А также, посоветуйте, пожалуйста, насчёт индикатора процесса... И вообще, что касается выполнения большого количества каких-либо операций во время и/или после установки, как это лучше реализовать? Можно ли сделать кнопку "Отмена" активной и/или выполнять это всё не из секции [Run]?! А последнее по поводу "runascurrentuser" нужно, чтобы все команды выполнялись с правами Администратора! |
Отправлено: 16:13, 08-12-2011 | #336 |
Пользователь Сообщения: 91
|
Профиль | Сайт | Отправить PM | Цитировать Как использовать *.png или *.gif картинку в WizardSmallImageFile и WizardImageFile, вместо *.bmp
|
Отправлено: 17:17, 08-12-2011 | #337 |
Пользователь Сообщения: 60
|
Профиль | Отправить PM | Цитировать TROY Diamond,
botva2.dll |
Отправлено: 18:01, 08-12-2011 | #338 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Vista-w,
на сколько я знаю-ботва не работает с *.gif |
------- Отправлено: 22:28, 08-12-2011 | #339 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать ARS_23, Inno GIFCtrl не поможет???
|
------- Отправлено: 22:44, 08-12-2011 | #340 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Test | ferget | Тест-форум | 0 | 24-08-2011 01:25 | |
test | ! ! Aaa ! ! | Тест-форум | 0 | 23-04-2011 11:29 | |
test | Santa aka Snt | Тест-форум | 0 | 16-04-2011 22:35 | |
test | xolod. | Программное обеспечение Linux и FreeBSD | 0 | 19-04-2009 21:03 | |
Test memory | KEugeNik | Хочу все знать | 11 | 23-11-2003 23:11 |
|