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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 22-10-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]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

Аватара для Sotonisto

Пользователь


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

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


Цитата vadjliss:
не отображаются надписи»
В каком смысле? Я буквально только что проверил скрипт - всё работает. Возможно, вы забыли удалили нижнее подчеркивание в [Code_]?

-------
Большой шаг вперед, как правило, следствие хорошего пинка под зад.


Отправлено: 12:24, 14-08-2015 | #881



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

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


Аватара для Dodakaedr

Ветеран


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

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


Цитата vadjliss:
как сделать
чтобы перед установкой удалило старую версию программы
потом установила новую версию »
Пример почти как на скрине. Зачем вам такой велосипед?
Код: Выделить весь код
#define MyAppName "Test"
#define MyAppVersion "1.0"

[setup]
appid=test1
appname={#MyAppName}
appvername={#MyAppVersion}
DefaultDirName={sd}\{#MyAppName}

[code]
var
  BtnDel, BtnNDel: TNewRadioButton;
  
function CheckChoose(): Boolean;
var
  ShowForm: TSetupForm;
begin
  ShowForm := CreateCustomForm;
  ShowForm.Position:=poScreenCenter;
  try
    ShowForm.ClientWidth := ScaleX(410);
    ShowForm.ClientHeight := ScaleY(170);
    ShowForm.BorderStyle := bsSingle;
    ShowForm.BorderIcons := [biSystemMenu];
    ShowForm.Caption := '{#MyAppName} {#MyAppVersion}';
    
    with TNewButton.Create(ShowForm) do
    begin
      Parent := ShowForm;
      SetBounds(ScaleX(110), ScaleY(120), ScaleX(90), ScaleY(25));
      ModalResult := mrYes;
      Caption := 'OK';
    end;
    
    with TNewStaticText.Create(ShowForm) do
    begin
      Parent:= ShowForm;
      Caption:='Мастер может выполнить поиск предыдущей версии {#MyAppName} {#MyAppVersion} и'+ #13#10 +
               'удалить её. Вы хотите удалить предыдущую версию?';
      Left:=ScaleX(20);
      Top:=ScaleY(20);
      Font.Name:= 'Tahoma';
      Font.Size:= 9;
      Font.Color:=clBlack;;
      end;
      
    BtnDel := TNewRadioButton.Create(ShowForm);
    with BtnDel do
    begin
    Parent := ShowForm;
    Left := ScaleX(20);
    Top := ScaleY(60);
    Width := ScaleX(200);
    Height := ScaleY(17);
    Caption := 'Да, удалить предыдущую версию';
    Checked := True;
    end;
      
    BtnNDel := TNewRadioButton.Create(ShowForm);
    with BtnNDel do
    begin
    Parent := ShowForm;
    Left := ScaleX(20);
    Top := ScaleY(80);
    Width := ScaleX(272);
    Height := ScaleY(17);
    Caption := 'Нет, установить с заменой';
    end;
    
    with TNewButton.Create(ShowForm) do
    begin
      Parent := ShowForm;
      SetBounds(ScaleX(210), ScaleY(120), ScaleX(90), ScaleY(25));
      ModalResult := mrcancel;
      Caption := SetupMessage(msgButtonCancel);
    end;

   Result := (ShowForm.ShowModal = mrYes);
  finally
    ShowForm.Free;
  end;
end;

function TrueDel: boolean;
begin
    result := BtnDel.Checked;
end;
function FalseDel: boolean;
begin
    result := BtnNDel.Checked;
end;

function UninstallApp(): Boolean;
var
    Buff: String;
    i: Integer;
begin
    Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ExpandConstant( '{#SetupSetting( "AppId" )}_is1' ), 'UninstallString', Buff );
    if not Result then
    begin
    Result := not FileExists(RemoveQuotes(Buff));
    if not Result then
    try
        Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i);
    finally
        Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ExpandConstant( '{#SetupSetting( "AppId" )}_is1' ), 'UninstallString', Buff );
        if not Result then result := false; end;
  end else MsgBox('Программа не найдена!', mbError, MB_OK);
end;

function InitializeSetup(): Boolean;
begin
if CheckChoose then
if TrueDel then result := UninstallApp else result := false;
if FalseDel then result := true;
end;

Так как на скрине не получится, потому что надо генерировать новый идентификатор программы(AppID).

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


Отправлено: 14:42, 16-08-2015 | #882


Аватара для habib2302

Ветеран


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

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


vadjliss,
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
AppId=wwwwwwwwwwwwww

[code]

function UninstallMyApp(): Boolean;
var
    Buff: String;
    i: Integer;
begin
    Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
    if not Result then Result := not FileExists(RemoveQuotes(Buff));
    if not Result then if MsgBox('Перед установкой необходимо удалить предыдущую версию приложения. Продолжить?', mbError, MB_YESNO) = IDYES then
    try
        Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i);
    finally
        Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
        if not Result then MsgBox('Удаление завершилось неудачей, бывай!', mbError, MB_OK);
    end;
end;

function InitializeSetup(): Boolean;
begin
    Result := UninstallMyApp();
end;

-------
Помог? От "Полезное сообщение" не откажусь!!!

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

Отправлено: 15:01, 16-08-2015 | #883


Аватара для Sotonisto

Пользователь


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

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


habib2302, я уже предлагал vadjliss использовать этот пример (на предыдущей странице), но он ответил, что скрипт у него не работает.
Надеюсь, что Dodakaedr ему поможет.

-------
Большой шаг вперед, как правило, следствие хорошего пинка под зад.


Отправлено: 17:35, 16-08-2015 | #884


SHVtYW4=


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

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


Цитата Sotonisto:
я уже предлагал vadjliss использовать этот пример (на предыдущей странице), но он ответил, что скрипт у него не работает. »
Почему не работает?
У меня работает, у vadjliss не работает - Вопрос: Почему?
Может всё-таки проблема в этом [Code_] (Отметил красным), которое vadjliss не удалил?

Читайте.

Последний раз редактировалось Nordek, 16-08-2015 в 18:33. Причина: Ошибка: всё таки > всё-таки


Отправлено: 18:16, 16-08-2015 | #885


Аватара для habib2302

Ветеран


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

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


Sotonisto, ну вы сами видите, что постоянно вопросы задает те, которые легко решаются поиском по темам в печатной версии особенно про портативну. я ему дал легки код и спасибо не сказал. может он appid не сменил или код не правильно вставил. хотя смотрю он пишет, что не отображается текст в msgbox. значит забыл сменить название языка в разделе [CustomMessages] и в [Languages] с rus на свой

-------
Помог? От "Полезное сообщение" не откажусь!!!


Последний раз редактировалось habib2302, 16-08-2015 в 18:25.


Отправлено: 18:18, 16-08-2015 | #886


Аватара для boss911

Alien


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

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


Цитата Lanirius:
что-бы после установки программы запустился ещё 1 файл по запросу пользователя(есть галочка или нет) в зависимости от разрядности системы должен запускаться тот или другой файл »
Код: Выделить весь код
[Run]
Filename: {app}\MyProg32.exe; WorkingDir: {app}; Description: {cm:LaunchProgram,MyProg}; Flags: nowait postinstall skipifsilent; Check: NOT IsWin64
Filename: {app}\MyProg64.exe; WorkingDir: {app}; Description: {cm:LaunchProgram,MyProg}; Flags: nowait postinstall skipifsilent; Check: IsWin64
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:19, 21-08-2015 | #887


Аватара для Dodakaedr

Ветеран


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

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


Lanirius, используйте IsWin64
Через секцию Code

Код: Выделить весь код
if IsWin64 then
запуск x64 файла else
запуск x32 файла

Через секцию Run

Код: Выделить весь код
[Run]
Filename: "{app}\x32.exe"; Description: "Запустить {#MyAppName}"; Check: "not IsWIn64"; Flags: postinstall nowait skipifsilent
Filename: "{app}\x64.exe"; Description: "Запустить {#MyAppName}"; Check: "IsWIn64"; Flags: postinstall nowait skipifsilent

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


Отправлено: 16:24, 21-08-2015 | #888


Новый участник


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

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


boss911, Спасибо, работает, однако мне надо что-бы тот файл запускался от администратора (иначе не запускает его). Ну или сам сетапник надо запускать от админа... не подскажите где это надо прописать?

Отправлено: 16:49, 21-08-2015 | #889


Аватара для Dodakaedr

Ветеран


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

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


Цитата Lanirius:
Ну или сам сетапник надо запускать от админа... не подскажите где это надо прописать? »
Код: Выделить весь код
[Setup]
PrivilegesRequired=admin

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

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

Отправлено: 16:52, 21-08-2015 | #890



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты 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




 
Переход