|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Скрипты Inno Setup. Помощь и советы [часть 4]
|
Ветеран Сообщения: 1273 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Продолжение обсуждения Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Отправлено: 18:01, 29-08-2011 |
![]() Старожил Сообщения: 293
|
Профиль | Сайт | Отправить PM | Цитировать [ Code] procedure CurStepChanged(CurStep: TSetupStep); var AppPath: string; ResultCode: Integer; begin AppPath := RemoveQuotes(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1,InstallLocation|}')); if (CurStep = ssDone) and (IsComponentSelected('port')) then Exec(AppPath + '\uninstall\unins000.exe', '/VERYSILENT', '', SW_SHOW, ewNoWait, ResultCode); end; |
Отправлено: 18:14, 15-05-2012 | #1991 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать bugmenotagain, структуру reg: нельзя применять в коде
[ Code] procedure CurStepChanged(CurStep: TSetupStep); var AppPath, key, InstallLocation: string; ResultCode: Integer; begin if (CurStep = ssDone) and (IsComponentSelected('port')) then begin key := 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ExpandConstant('{#SetupSetting("AppID")}') + '_is1'; RegQueryStringValue(HKLM, key, 'InstallLocation', InstallLocation); MsgBox('Key = ' + key + #13#10 + 'InstallLocation = ' + InstallLocation, mbInformation, MB_OK); AppPath := RemoveBackslashUnlessRoot(RemoveQuotes(InstallLocation)); Exec(AppPath + '\uninstall\unins000.exe', '/VERYSILENT', '', SW_SHOW, ewNoWait, ResultCode); end; //if (CurStep = ssDone) and (IsComponentSelected('port')) end; Вот что точно левое так это секция [UninstallDelete] |
------- Последний раз редактировалось R.i.m.s.k.y., 15-05-2012 в 19:09. Отправлено: 18:49, 15-05-2012 | #1992 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y.,
у меня пример на предыдущей странице рабочий я проверял добавил другую строку на предыдущей странице |
Отправлено: 18:53, 15-05-2012 | #1993 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Johny777, я переписал по рабочему, это раз
дваз - неправильно постоянно вычислять ключи, надо их подсунуть под if (CurStep = ssDone) ============= еще ошибка AppPath имеет на конце \ и ты еще раз приплюсовываешь его же |
------- Последний раз редактировалось R.i.m.s.k.y., 15-05-2012 в 19:08. Отправлено: 18:58, 15-05-2012 | #1994 |
![]() Старожил Сообщения: 293
|
Профиль | Сайт | Отправить PM | Цитировать Johny777, Я скопировал ваш скрипт. но он не работает
Цитата R.i.m.s.k.y.:
![]() и теперь в назначенную папку вообще ничего не распаковывается. пустая |
|
Отправлено: 19:05, 15-05-2012 | #1995 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать bugmenotagain, вот для этого я и поставил MSGBox
смотри пути где ищет удалятор и куда ставишь Согласно твоему коду он ищет в InstallLocation = ... А ты где его ждешь? |
------- Отправлено: 19:12, 15-05-2012 | #1996 |
![]() Старожил Сообщения: 293
|
Профиль | Сайт | Отправить PM | Цитировать R.i.m.s.k.y.,
Цитата R.i.m.s.k.y.:
|
|
Отправлено: 19:14, 15-05-2012 | #1997 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать bugmenotagain,
не путай меня, я сам запутаюсь Папки раскидывал ты итак, что куда копируется? четко, внятно где должен лежать удалятор, куда ставится портабельная и полная версия |
------- Отправлено: 19:33, 15-05-2012 | #1998 |
![]() Старожил Сообщения: 293
|
Профиль | Сайт | Отправить PM | Цитировать R.i.m.s.k.y.,
Цитата R.i.m.s.k.y.:
ну папку можно естественно изменить. удалятор должен лежать как положено в папке программе. в portable нет никакого удалятора, это просто набор файлов скопировать и все. |
|
Отправлено: 19:41, 15-05-2012 | #1999 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y.,
приношу свои извинения, тк мой пример состоит на половину из лишнего кода ![]() только сейчас допёрло, что на шаге ssDone константа {app} ещё существует, а это всё упрощает и укорачивает! Вот: (Проверил. Работает) наглядный пример прилагается в архиве |
Последний раз редактировалось Johny777, 26-03-2013 в 15:58. Отправлено: 20:13, 15-05-2012 | #2000 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|