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

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

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

Ветеран


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


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

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 908 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 806 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

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


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

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

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

Ветеран


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

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


oleg_teacher,
ChangesAssociations=true
ChangesEnvironment=true
и перезапустить тотал/эксплорер

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

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

Отправлено: 21:45, 04-02-2011 | #721



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

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


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


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

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


Вот еще вопрос...Как сделать чтобы InnoSetup не создавал файлы удаления для моего приложения, в папке с установленной игрой (uninst000.exe, uninst000.exe)???

Отправлено: 02:38, 05-02-2011 | #722


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


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

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


Neutron,
Спасибо, комрад!!!!!!

Отправлено: 04:36, 05-02-2011 | #724


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

Ветеран


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

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


Цитата Neutron:
Если можно как-то другим способом жду ваших предложений! »
Способ 1
Код: Выделить весь код
[Files]
Source: vorbis.acm; DestDir: {sys}\; Flags: restartreplace

[Registry]
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc"; ValueName: "vorbis.acm"; ValueType: String; ValueData: "Ogg Vorbis Audio CODEC"; Components: ffd; Flags: uninsdeletevalue
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32"; ValueName: "msacm.vorbis"; ValueType: String; ValueData: "vorbis.acm"; Components: ffd; Flags: uninsdeletevalue
Способ 2 отсюда http://windata.ru/windows-xp/faq-xp/...andnoj-stroki/

Код: Выделить весь код
[Files]
Source: vorbis.acm; DestDir: {tmp}\; Flags: 
Source: vorbis.inf; DestDir: {tmp}\; Flags: 

[Run]
Filename: {sys}\rundll32.exe; Parameters: " syssetup, SetupInfObjectInstallAction DefaultInstall 128 ""{tmp}\vorbis.inf"""; StatusMsg: Установка Vorbis; Flags: runhidden waituntilterminated

Про 3 кнопки не знаю, про две ДА/НЕТ могу подсказать

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

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

Отправлено: 12:29, 05-02-2011 | #726


Аватара для nik1967

Старожил


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

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


Цитата Neutron:
Можно ли сделать так, что бы если например какая программа или игра установлена, и при запуске инсталлятора были 3 кнопки Запустить Удалить Отмена? »
Набросал на скорую руку
Код: Выделить весь код
#define Name "My Program"

[Setup]
AppName={#Name}
AppVerName={#Name}
DefaultDirName={pf}\{#Name}

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Messages]
rus.SetupWindowTitle={#Name}

[Files]
;Source: My Program.exe; DestDir: {app}; Flags: ignoreversion nocompression;

[Registry]
Root: HKLM; Subkey: "SOFTWARE\{#Name}"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\{#Name}"; ValueName: "Path"; ValueType: String; ValueData: "{app}\"; Flags: uninsdeletekey

[UninstallDelete]
Type: filesandordirs; Name: {app};

[_Code]
var
  AppDir, unins, run: string;
  ResultCode: Integer;
  UninsButton, RunButton: TButton;
  MyLabel: TLabel;

procedure ReadEntries;
begin
	RegQueryStringValue(HKLM, 'SOFTWARE\{#Name}', 'Path', AppDir);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm:= False;
end;

procedure Uninstall(Sender: TObject);
begin
  unins:='unins000.exe';
  ReadEntries;
  if not (FileExists(AddBackslash(AppDir) + unins)) then
    MsgBox('Невозможно запустить деинсталляцию программы ' + ExpandConstant('{#Name}') + ', т.к. исполняемый файл деинсталляции unins000.exe не найден.', mbCriticalError, MB_OK or MB_DEFBUTTON1)
  else
    Exec(AddBackslash(AppDir) + unins, '', ExtractFilePath(AddBackslash(AppDir) + unins), SW_SHOW, ewNoWait, ResultCode);
  WizardForm.Close;
end;

procedure RunProgramm(Sender: TObject);
begin
  run:='My Program.exe';
  ReadEntries;
  if (FileExists(AddBackslash(AppDir) + run)) then
    Exec(AddBackslash(AppDir) + run, '', ExtractFilePath(AddBackslash(AppDir) + run), SW_SHOW, ewNoWait, ResultCode);
  WizardForm.Close;
end;

procedure NewForm;
begin
  ReadEntries;
  if (RegValueExists(HKLM, 'SOFTWARE\{#Name}', 'Path')) and (FileExists(ExpandConstant(AppDir)+'\My Program.exe')) then begin
  with WizardForm do
  begin
    ClientWidth := ScaleX(395);
    ClientHeight := ScaleY(120);
    Bevel.Hide;
    InnerNotebook.Hide;
    OuterNotebook.Hide;
    BorderStyle:= bsDialog;
    Center;
    with CancelButton do
    begin
      Left := WizardForm.CancelButton.Left -100;
      Top := WizardForm.ClientHeight - CancelButton.Height - ScaleY(10);
      BringToFront;
    end;
    UninsButton:= TButton.Create(WizardForm);
    with UninsButton do
    begin
      Left := WizardForm.NextButton.Left -100;
      Top := WizardForm.ClientHeight - NextButton.Height - ScaleY(10);
      Width:= WizardForm.NextButton.Width;
      Parent:= WizardForm;
      Caption:= 'Удалить';
      OnClick := @Uninstall;
      BringToFront;
    end;
    RunButton:= TButton.Create(WizardForm);
    with RunButton do
    begin
      Left := WizardForm.BackButton.Left -110;
      Top := WizardForm.ClientHeight - BackButton.Height - ScaleY(10);
      Width:= WizardForm.BackButton.Width;
      Parent:= WizardForm;
      Caption:= 'Запустить';
      OnClick := @RunProgramm;
      BringToFront;
    end;
    MyLabel:= TLabel.Create(WizardForm);
    with MyLabel do
    begin
      SetBounds(10,10,380,80);
      AutoSize:=False;
      WordWrap:=True;
      Font.Color:=$000000;
      Font.Style:=[fsBold];
      Font.Size:=10;
      Parent:=WizardForm;
      Transparent:=True;
      Caption:= 'Программа ' + ExpandConstant('{#Name}') + ' уже установлена на Ваш компьютер.' +#13#13+ 'Выберите нужное действие.';
      end;
    end;
  end;
end;

procedure InitializeWizard;
begin
  NewForm;
end;

Последний раз редактировалось nik1967, 05-02-2011 в 23:48.

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

Отправлено: 23:30, 05-02-2011 | #727


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


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

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


nik1967, Благодарю за пример. Только вот у меня работать не хочет. Ветка реестра появляется, а вот выбора нет, стандартное окно приветствия.
Мои замечания: имя деинсталлятора лучше бы было выразить "переменной", т.к. инно в некоторых случаях переименовывает (unins001.exe...)

Отправлено: 07:20, 06-02-2011 | #728


Аватара для nik1967

Старожил


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

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


duxa,
Повнимательнее. У меня организована проверка не только ветки реестра, но и присутствия запускающего файла (в моём случае My Program.exe). Если его нет, то стандартное окно приветствия.
Код: Выделить весь код
if (RegValueExists(HKLM, 'SOFTWARE\{#Name}', 'Path')) and (FileExists(ExpandConstant(AppDir)+'\My Program.exe')) then begin
У меня работает. Я всегда по несколько раз проверяю, прежде чем выложить.

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

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

Отправлено: 10:10, 06-02-2011 | #729


Аватара для EvilAlex

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


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

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


Огромная просьба поправить в скрипте "Откат изменений" !

А то он продолжает установку, а не отменяет ее ...

http://rghost.ru/4224722

Зарание спасибо !

Последний раз редактировалось EvilAlex, 06-02-2011 в 12:19.


Отправлено: 12:13, 06-02-2011 | #730



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход