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

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

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

Аватара для 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] - Скачать;


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

Отправлено: 03:49, 21-05-2012

 

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


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

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


Цитата Respin:
Вы уже всё распланировали (что будет два установщика (один из которых будет искать Steam + путь установки)). И всё же говорите примерно...
Ну значит, примерно, как-то так: »
Примерно я говорю потому, что какого-то конкретного сейчас сейчас нет. Но в скором времени это мне понадобится

Спасибо! Как сделать так, чтобы при наличии установленного стима игра устанавливалась в папку стима понятно. Но мне хотелось, чтобы даже при наличии установленного стима был выбор между обычной установкой и установкой стим. Может можно сделать какие чекбоксы на отдельной странице перед DirPage, чтобы в соответствии с чекбоксом прописывался путь либо "path1", либо "path2"?

Прошу прощения, что возможно много вопросов задаю. Просто я действительно не шарю в паскале

Последний раз редактировалось LagunaFAN, 17-10-2012 в 23:52.


Отправлено: 23:27, 17-10-2012 | #1141



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

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


Аватара для Mailchik

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


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

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


LagunaFAN,
читать дальше »
Код: Выделить весь код
#define GameName   "My Application"
[Setup]
AppName={#GameName}
AppVersion=1.5
DefaultDirName={pf}\{#GameName}

[Code]
var
 SteamCheckBox : TNewCheckBox;

procedure InitializeWizard;
 begin
  SteamCheckBox := TNewCheckBox.Create(WizardForm);
  with SteamCheckBox do begin
   Parent := WizardForm.WelcomePage;
   SetBounds(ScaleX(170), ScaleY(250), ScaleX(200), ScaleY(20));
   Caption := 'Steam-установка';
  end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if (CurPageID = wpSelectDir) and (SteamCheckBox.Checked) then begin
   if RegKeyExists(HKLM, 'Software\Valve\Steam') then
    WizardForm.DirEdit.Text := ExpandConstant('{reg:HKLM\Software\Valve\Steam, InstallPath}\steamapps\common\{#GameName}')
    else MsgBox('Steam не установлен', mbInformation, MB_OK);
  end else begin
    WizardForm.DirEdit.Text := ExpandConstant('{pf}\{#GameName}');
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:28, 18-10-2012 | #1142


Аватара для apozlevich

Ветеран


Автор проектов


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

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


Добрый день. Помогите:
Код: Выделить весь код
Root: HKLM; Subkey: "SOFTWARE\Classes\CLSID\{{645FF040-5081-101B-9F08-00AA002F954E}}\Shell\Open CCleaner..."; Tasks: open; Languages: en; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Classes\CLSID\{{645FF040-5081-101B-9F08-00AA002F954E}}\Shell\Open CCleaner...\command"; ValueName: ""; ValueType: string; ValueData: "{app}\CCleaner.exe"; Tasks: open; Languages: en
Не делает совсем ничего. Думаю, глупая опечатка, но в упор ее не вижу.

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!


Отправлено: 13:03, 18-10-2012 | #1143


Аватара для Gnom_aka_Lexander

Ветеран


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

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


apozlevich, в каком смысле не делает? если эти ключи не пишутся в реестр, то нужно проверить соблюдение всех условий.
Цитата apozlevich:
Tasks: open; Languages: en »
будет добавлено, если выполнены одновременно оба условия - выбрана задача open и выбран язык инсталлятора en в начале установки ( если выбор языка отсутствует вообще, то условие скорей всего будет считаться невыполненым, утверждать не могу, не видя скрипта)

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Отправлено: 17:52, 18-10-2012 | #1144


Аватара для apozlevich

Ветеран


Автор проектов


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

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


Цитата Gnom_aka_Lexander:
будет добавлено, если выполнены одновременно оба условия - выбрана задача open и выбран язык инсталлятора en в начале установки ( если выбор языка отсутствует вообще, то условие скорей всего будет считаться невыполненым, утверждать не могу, не видя скрипта) »
Оба условия соблюдены.

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!


Отправлено: 18:00, 18-10-2012 | #1145


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата Gnom_aka_Lexander:
не видя скрипта »
нужно посмотреть скрипт полностью.

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

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

Отправлено: 18:12, 18-10-2012 | #1146


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

Ветеран


Contributor


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

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


Цитата apozlevich:
Не делает совсем ничего. Думаю, глупая опечатка, но в упор ее не вижу. »
apozlevich, и не будет работать из-за:
1. GUID, дабы компилятор не посчитал его константой, экранируется только открывающей фигурной скобкой, нужно убрать лишнюю - {{645FF040-5081-101B-9F08-00AA002F954E}}.
2. Толку от этих записей на x64-системах будет никакого, т.к. запишутся в 32-разрядный куст реестра - в контекстном меню корзины ничего не увидите. Нужна проверка разрядности системы, в зависимости от результата писать в нужные кусты.
P.S. Раз делаете мультиязычный установщик, в данном случае от флага Languages можно отказаться. В общем, я бы сделал так:
Код: Выделить весь код
[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl
Name: en; MessagesFile: compiler:default.isl

[CustomMessages]
ru.ContextMenu=Открыть CCleaner...
en.ContextMenu=Open CCleaner...

[Registry]
;32-bit
Root: HKLM; Subkey: "SOFTWARE\Classes\CLSID\{{645FF040-5081-101B-9F08-00AA002F954E}\shell\{cm:ContextMenu}"; Tasks: open; Flags: uninsdeletekey; Check: not IsWin64
Root: HKLM; Subkey: "SOFTWARE\Classes\CLSID\{{645FF040-5081-101B-9F08-00AA002F954E}\shell\{cm:ContextMenu}\command"; ValueType: string; ValueData: "{app}\CCleaner.exe"; Tasks: open; Flags: uninsdeletekey; Check: not IsWin64
;64-bit
Root: HKLM64; Subkey: "SOFTWARE\Classes\CLSID\{{645FF040-5081-101B-9F08-00AA002F954E}\shell\{cm:ContextMenu}"; Tasks: open; Flags: uninsdeletekey; Check: IsWin64
Root: HKLM64; Subkey: "SOFTWARE\Classes\CLSID\{{645FF040-5081-101B-9F08-00AA002F954E}\shell\{cm:ContextMenu}\command"; ValueType: string; ValueData: "{app}\CCleaner.exe"; Tasks: open; Flags: uninsdeletekey; Check: IsWin64
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:28, 18-10-2012 | #1147


Аватара для apozlevich

Ветеран


Автор проектов


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

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


El Sanchez, спасибо, но я забыл отметить, что мне уже все объяснил Gnom_aka_Lexander, за что ему большое спасибо.

Цитата El Sanchez:
P.S. Раз делаете мультиязычный установщик, в данном случае от флага Languages можно отказаться. В общем, я бы сделал так: »
А это хорошая идея!

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!


Отправлено: 21:34, 18-10-2012 | #1148


Аватара для Tco 03

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


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

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


Подскажите пожалуйста, как скопировать папку целиком (со всеми вложенными в неё файлами) через секцию [code]?

Отправлено: 23:51, 18-10-2012 | #1149


Аватара для Johny777

Ветеран


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

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


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

[code]
procedure CopyFolder(SourceFolder, DestFolder: String);
var
    oFS: Variant;
begin
    try
        if not DirExists(SourceFolder) then Exit;
        if not DirExists(DestFolder) then if not CreateDir(DestFolder) then Exit;
        oFS := CreateOleObject('Scripting.FileSystemObject');
        oFS.CopyFolder(RemoveBackslash(SourceFolder), DestFolder);
    except
        //ShowExceptionMessage;
    end;
end;


procedure InitializeWizard();
begin
    CopyFolder('C:\setup', 'C:\Intel\setup');
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:05, 19-10-2012 | #1150



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход