Имя пользователя:
Пароль:
 | Правила  

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]

Отправлено: 11:48, 10-03-2014

 

Аватара для AlekseyPopovv

Старожил


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

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


Ребята помогите решить проблему: скрипт собирается, файл запускается всё устанавливается. Ошибка возникает при удалении после окошка "Нажмите кнопку "OK" и удалите не нужные Вам параметры программы {#MyAppName} {#MyAppVersion}.". Скрипт на две программы (Beauty.Checked и Brightness.Checked). Как решить эту проблему?

[Messages]
UninstalledAll=Нажмите кнопку "OK" и удалите не нужные Вам параметры программы {#MyAppName} {#MyAppVersion}.

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Beauty Guide');
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Beauty Guide');
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Beauty Guide');
if Beauty.Checked then
RemoveDir(ExpandConstant('{group}'));
end;
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Удалить Ваши настройки Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Beauty.Checked then
DelTree(ExpandConstant('{userappdata}\BeautyGuide'), True, True, True);
end;
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Удалить плагины Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Beauty.Checked then
DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BeautyGuidePlugin.8bf'));
DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BeautyGuidePlugin64.8bf'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
RemoveDir(ExpandConstant('{pf}\Tint Guide'));
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Программа {#MyAppNameBeauty} {#MyAppBeautyVersion} удалена!',mbconfirmation, mb_ok) = IDYES then
end;
end;
end;
end;
end;
end;
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Brightness Guide');
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Brightness Guide');
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Brightness Guide');
if Brightness.Checked then
RemoveDir(ExpandConstant('{group}'));
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Удалить Ваши настройки Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Brightness.Checked then
DelTree(ExpandConstant('{userappdata}\BrightnessGuide'), True, True, True);
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Удалить плагины Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Brightness.Checked then
DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BrightnessGuidePlugin.8bf'));
DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BrightnessGuidePlugin64.8bf'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
RemoveDir(ExpandConstant('{pf}\Tint Guide'));
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Программа {#MyAppNameBrightness} {#MyAppBrightnessVersion} удалена!',mbconfirmation, mb_ok) = IDYES then
end;
end;
end;
end;
end;
end;
end;
end;

Отправлено: 12:52, 14-08-2014 | #1361



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

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


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

Ветеран


Contributor


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

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


AlekseyPopovv,
читать дальше »

Код: Выделить весь код
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
    if (CurUninstallStep = usDone) then
    begin
        if Beauty.Checked then
            RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Beauty Guide');
            RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Beauty Guide');
            RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Beauty Guide');
            RemoveDir(ExpandConstant('{group}'));
            
            if MsgBox('Удалить Ваши настройки Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
                DelTree(ExpandConstant('{userappdata}\BeautyGuide'), True, True, True);
                
            if MsgBox('Удалить плагины Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
            begin
                DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BeautyGuidePlugin.8bf'));
                DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BeautyGuidePlugin64.8bf'));
                RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
                RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
                RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
                RemoveDir(ExpandConstant('{pf}\Tint Guide'));
            end;
            MsgBox('Программа {#MyAppNameBeauty} {#MyAppBeautyVersion} удалена!',mbconfirmation, mb_ok);
        end;
        
        if Brightness.Checked then
        begin
            RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Brightness Guide');
            RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Brightness Guide');
            RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Brightness Guide');
            RemoveDir(ExpandConstant('{group}'));
            
            if MsgBox('Удалить Ваши настройки Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
                DelTree(ExpandConstant('{userappdata}\BrightnessGuide'), True, True, True);

            if MsgBox('Удалить плагины Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
            begin
                DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BrightnessGuidePlugin.8bf'));
                DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BrightnessGuidePlugin64.8bf'));
                RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
                RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
                RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
                RemoveDir(ExpandConstant('{pf}\Tint Guide'));
            end;
            MsgBox('Программа {#MyAppNameBrightness} {#MyAppBrightnessVersion} удалена!',mbconfirmation, mb_ok);
        end;
    end;
end;

Отправлено: 08:54, 15-08-2014 | #1362


Аватара для Raf-9600

Старожил


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

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


Можно ли сделать так, чтобы Description одного из компонентов брался из определённой переменной?

Отправлено: 22:34, 15-08-2014 | #1363


Аватара для Dodakaedr

Ветеран


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

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


Подскажите, как через секцию [code] провести регистрацию OLE-сервера (он же ActiveX control), по иному как сделать через секцию [code] тоже самое что и флаг regserver в секции [Files]?

-------
Inno Setup 5 Ultra Unicode


Отправлено: 16:54, 17-08-2014 | #1364


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

Ветеран


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

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


Dodakaedr,
Exec(ExpandConstant('{sys}\regsvr32.exe'), ' /s ' + 'полный_путь_до_файла', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, ResultCode)

Raf-9600,
# define SVPDefDir "SVP 3.1.6"
[Components]
Name: SVP; Description: {#SVP};

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:12, 17-08-2014 | #1365


Аватара для Dodakaedr

Ветеран


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

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


R.i.m.s.k.y., А как на счет встроенной процедуры RegisterServer? Не подскажите как правильно её использовать для регистрации для 32bit и 64bit? И как с помощью regsvr32.exe дерегистрировать?

-------
Inno Setup 5 Ultra Unicode


Последний раз редактировалось Dodakaedr, 15-10-2014 в 15:57.


Отправлено: 17:23, 17-08-2014 | #1366


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

Ветеран


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

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


Dodakaedr,
(un)registerServer (False для х86 true для х64, 'полный_путь_до_файла',True)

Exec(ExpandConstant('{sys}\regsvr32.exe'), ' /u /s ' + 'полный_путь_до_файла', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, ResultCode)

кнопка F1 западает?

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:31, 17-08-2014 | #1367


Аватара для Dodakaedr

Ветеран


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

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


Цитата R.i.m.s.k.y.:
кнопка F1 западает? »
Нет, отсутствует Спасибо!

-------
Inno Setup 5 Ultra Unicode


Отправлено: 17:53, 17-08-2014 | #1368


Аватара для Raf-9600

Старожил


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

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


Цитата R.i.m.s.k.y.:
# define SVPDefDir "SVP 3.1.6" »
Но define это ведь что-то вроде константы, т.е. далее в коде его менять нельзя, или я ошибаюсь? Мне нужно чтобы название компонента бралось из ini-файла, код для чтения из ini имею, а вот как дальше сделать...

Отправлено: 18:18, 17-08-2014 | #1369


Аватара для nik1967

Старожил


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

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


Raf-9600,
Код: Выделить весь код
[Setup]
AppName=test
AppVerName=test
DefaultDirName={pf}\test

[Components]
Name: SVP; Description: {code:ReadIni};                                

[Code]	
function ReadIni(IniFile: String): String;
begin
  IniFile:= ExpandConstant('{src}\test.ini'); // расположение ini файла
  Result:= GetIniString('test'{Название секции}, 'test1'{Подключ}, '', IniFile);
end;

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 17-08-2014 в 20:51.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:04, 17-08-2014 | #1370



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34




 
Переход