Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 4]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1273
Благодарности: 1030


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]


Продолжение обсуждения
Скрипты Inno Setup. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

Аватара для bugmenotagain

Старожил


Сообщения: 293
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: zip win.zip
(1.1 Kb, 5 просмотров)

Код: Выделить весь код
[  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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить 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;
КМК это не сработает, ты ставишь ее и тут же на последнем шаге сносишь, хотя флаг uninsneveruninstall присутсвует, может и сработать
Вот что точно левое так это секция [UninstallDelete]

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Последний раз редактировалось R.i.m.s.k.y., 15-05-2012 в 19:09.


Отправлено: 18:49, 15-05-2012 | #1992


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


R.i.m.s.k.y.,
у меня пример на предыдущей странице рабочий
я проверял
добавил другую строку на предыдущей странице

Отправлено: 18:53, 15-05-2012 | #1993


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Johny777, я переписал по рабочему, это раз
дваз - неправильно постоянно вычислять ключи, надо их подсунуть под if (CurStep = ssDone)

=============
еще ошибка AppPath имеет на конце \ и ты еще раз приплюсовываешь его же

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Последний раз редактировалось R.i.m.s.k.y., 15-05-2012 в 19:08.


Отправлено: 18:58, 15-05-2012 | #1994


Аватара для bugmenotagain

Старожил


Сообщения: 293
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Johny777, Я скопировал ваш скрипт. но он не работает

Цитата R.i.m.s.k.y.:
[ 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 := RemoveQuotes(InstallLocation); Exec(AppPath + '\uninstall\unins000.exe', '/VERYSILENT', '', SW_SHOW, ewNoWait, ResultCode); end; //if (CurStep = ssDone) and (IsComponentSelected('port')) end; »
в конце установки
и теперь в назначенную папку вообще ничего не распаковывается. пустая

Отправлено: 19:05, 15-05-2012 | #1995


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


bugmenotagain, вот для этого я и поставил MSGBox
смотри пути где ищет удалятор и куда ставишь
Согласно твоему коду он ищет в InstallLocation = ...
А ты где его ждешь?

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 19:12, 15-05-2012 | #1996


Аватара для bugmenotagain

Старожил


Сообщения: 293
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


R.i.m.s.k.y.,
Цитата R.i.m.s.k.y.:
Согласно твоему коду »
Я ваш скрипт скопировал и все.

Отправлено: 19:14, 15-05-2012 | #1997


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


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

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 19:33, 15-05-2012 | #1998


Аватара для bugmenotagain

Старожил


Сообщения: 293
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


R.i.m.s.k.y.,
Цитата R.i.m.s.k.y.:
куда ставится портабельная и полная версия »
по умолчанию просится C:\Program Files\WinDjView
ну папку можно естественно изменить.
удалятор должен лежать как положено в папке программе.
в portable нет никакого удалятора, это просто набор файлов скопировать и все.

Отправлено: 19:41, 15-05-2012 | #1999


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


R.i.m.s.k.y.,
приношу свои извинения, тк мой пример состоит на половину из лишнего кода
только сейчас допёрло, что на шаге ssDone константа {app} ещё существует, а это всё упрощает и укорачивает!
Вот:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=MyProg.exe
DefaultDirName={pf}\SeperTest
UninstallFilesDir={app}\uninstall

[Components]
Name: norm; Description: Я простая версия; Flags: exclusive
Name: port; Description: А я портативная; Flags: exclusive

[Files]
Source: port\*; DestDir: {app}\port; Flags: ignoreversion createallsubdirs recursesubdirs sortfilesbyextension sortfilesbyname uninsneveruninstall; Components: port
Source: norm\*; DestDir: {app}\norm; Flags: ignoreversion createallsubdirs recursesubdirs sortfilesbyextension sortfilesbyname; Components: norm

[  Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
begin
  if (CurStep = ssDone) and (IsComponentSelected('port')) then Exec(ExpandConstant('{app}\uninstall\unins000.exe'), '/VERYSILENT', '', SW_SHOW, ewNoWait, ResultCode);
end;

(Проверил. Работает)
наглядный пример прилагается в архиве

Последний раз редактировалось Johny777, 26-03-2013 в 15:58.


Отправлено: 20:13, 15-05-2012 | #2000



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход