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

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

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

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

Ветеран


Contributor


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


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

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


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



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

Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z
Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z
Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 04-04-2018

 

Аватара для vk_k14m@vk

Старожил


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

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


Цитата Dodakaedr:
Указали не правильную константу. »
Ясно...

-------
Взялся отвечать, отвечай до конца!


Последний раз редактировалось vk_k14m@vk, 09-06-2019 в 20:24.


Отправлено: 17:41, 09-06-2019 | #331



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

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


Аватара для vk_k14m@vk

Старожил


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

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


Народ. Есть игра, в корне которой лежит текстовый файл config.ksc, с текстом
Код: Выделить весь код
(const) %[
 "saveDataLocation" => "file://./d/документы/fateavedata"
]
d/документы/fateavedata - это папка в которую игра будет сохранятся.

Так вот как бы настроить создание этого файла в установщике?

Нужно что б на странице выбора папки установки игры, или на следующей после этой странице можно было выбрать путь к папке сохранения (и создание этой папки если ее нет). И после завершения установки этот путь должен прописаться в файле config.ksc

Как бы это провернуть? Надеюсь на вашу помощь...

-------
Взялся отвечать, отвечай до конца!


Последний раз редактировалось vk_k14m@vk, 12-06-2019 в 20:54.


Отправлено: 20:04, 12-06-2019 | #332


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

Ветеран


Contributor


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

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


Цитата vk_k14m@vk:
Так вот как бы настроить создание этого файла в установщике? »
Скрытый текст

Код: Выделить весь код
[Code]
procedure RtlMoveMemory(Dest: PAnsiChar; Source: string; Len: Integer); external 'RtlMoveMemory@kernel32.dll stdcall';

var
  SaveDataLocationPage: TInputDirWizardPage;

procedure SetSaveDataLocation;
var
  S1: string;
  S2: AnsiString;
begin
  S1 := SaveDataLocationPage.Values[0];
  StringChangeEx(S1, ':', '', True);
  StringChangeEx(S1, '\', '/', True);
  S1 := '%["saveDataLocation" => "file://./' + S1 + '"]';
  S2 := StringOfChar(#0, Length(S1) shl 1);
  RtlMoveMemory(S2, S1, Length(S2));
  S2 := Chr($FF) + Chr($FE) + S2;
  SaveStringToFile(ExpandConstant(CurrentFileName), S2, False);
end;

procedure CreateSaveDataLocationPage;
begin
  SaveDataLocationPage := CreateInputDirPage(wpSelectDir, 'caption', 'description', 'subcaption', False, 'fateavedata');
  SaveDataLocationPage.Add('prompt');
end;

procedure InitializeWizard;
begin
  CreateSaveDataLocationPage;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  case CurPageID of
    SaveDataLocationPage.ID:
      if SaveDataLocationPage.Values[0] = '' then
        SaveDataLocationPage.Values[0] := ExpandConstant('{app}\fateavedata');
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:20, 13-06-2019 | #333


Аватара для Dodakaedr

Ветеран


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

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


Цитата El Sanchez:
S2 := Chr($FF) + Chr($FE) + S2; »
А какие начальные байты у ANSI?

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


Отправлено: 19:32, 13-06-2019 | #334


Ветеран


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

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


Dodakaedr, никаких. Для ANSI и OEM нет BOM.

Отправлено: 20:53, 13-06-2019 | #335


Аватара для vk_k14m@vk

Старожил


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

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


El Sanchez, к сожалению твой код не работает. Или правильнее будет сказать, работает не до конца. Страница в выбором папки установки и правда появилась.
https://i106.fastpic.ru/big/2019/061...eabf7dd4c8.png

Вот только файл config.ksc с текстом
Код: Выделить весь код
(const) %[
 "saveDataLocation" => "file://./{app}\fateavedata"
]
в папке с игрой не появляется. Может я что-то не так сделал?
Скрытый текст
Код: Выделить весь код
; Скрипт создан при помощи мастера создания скриптов.
; СМ. ДОКУМЕНТАЦИЮ ДЛЯ ИЗУЧЕНИЯ ДЕТАЛЕЙ ОТНОСИТЕЛЬНО СОЗДАНИЯ ФАЙЛОВ СКРИПТА INNO SETUP!

#define MyAppName "Fate/Stay Night [Realta Nua] - Ultimate Edition"
#define MyAppVerName "Fate/Stay Night [Realta Nua] - Ultimate Edition v0.9.1"
#define MyAppPublisher "Type-Moon"
#define MyAppExeName "Fate.exe"

[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
DefaultDirName=D:\Games\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=D:\
OutputBaseFilename=setup
DisableWelcomePage=no
SetupIconFile=D:\Fate/Stay Night [Realta Nua] - Ultimate Edition\icon.ico
WizardImageFile=D:\Fate/Stay night\WizardImageFile.bmp
WizardSmallImageFile=D:\Fate/Stay night\WizardSmallImageFile.bmp
Compression=lzma/ultra64
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=1073741824

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

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "D:\Fate/Stay Night [Realta Nua] - Ultimate Edition\Fate.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Fate/Stay Night [Realta Nua] - Ultimate Edition\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; ОТМЕТЬТЕ: Не используйте "Флажки: Проигнорировать версию" на любых общедоступных системных файлах

[Code ]
procedure RtlMoveMemory(Dest: PAnsiChar; Source: string; Len: Integer); external 'RtlMoveMemory@kernel32.dll stdcall';

var
  SaveDataLocationPage: TInputDirWizardPage;

procedure SetSaveDataLocation;
var
  S1: string;
  S2: AnsiString;
begin
  S1 := SaveDataLocationPage.Values[0];
  StringChangeEx(S1, ':', '', True);
  StringChangeEx(S1, '\', '/', True);
  S1 := '%["saveDataLocation" => "file://./' + S1 + '"]';
  S2 := StringOfChar(#0, Length(S1) shl 1);
  RtlMoveMemory(S2, S1, Length(S2));
  S2 := Chr($FF) + Chr($FE) + S2;
  SaveStringToFile(ExpandConstant(CurrentFileName), S2, False);
end;

procedure CreateSaveDataLocationPage;
begin
  SaveDataLocationPage := CreateInputDirPage(wpSelectDir, 'Выбор папки сохранений', 'В какую папку должна сохраняться игра Fate/Stay Night [Realta Nua] - Ultimate Edition?', 'Программа настроит сохранения игры Fate/Stay Night [Realta Nua] - Ultimate Edition в следующую папку.', False, 'fateavedata');
  SaveDataLocationPage.Add('Нажмите «Далее», что бы продолжить. Если вы хотите выбрать другую папку, нажмите «Обзор».');
end;

procedure InitializeWizard;
begin
  CreateSaveDataLocationPage;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  case CurPageID of
    SaveDataLocationPage.ID:
      if SaveDataLocationPage.Values[0] = '' then
        SaveDataLocationPage.Values[0] := ExpandConstant('{app}\fateavedata');
  end;
end;

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppName}}"; Flags: nowait postinstall skipifsilent


А еще, можно как то разобрать уже созданный установщик что б узнать исходный код? Я не знаю в какой программе он был создан, но очень бы хотелось его разобрать...

-------
Взялся отвечать, отвечай до конца!


Последний раз редактировалось vk_k14m@vk, 14-06-2019 в 01:12.


Отправлено: 00:13, 14-06-2019 | #336


Аватара для ErikPshat

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


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

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


vk_k14m@vk, ну свою прогу вы можете распаковать этим: Inno Setup Unpacker
Секцию Code вы конечно не дизассемблируете, т.к. она в бинарном виде изначально будет упакована, но всё остальное прекрасно извлекается.
А вот надо сначала узнать, в какой программе был создан экзешник, потом извлекать соответствующим софтом.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:01, 14-06-2019 | #337


Аватара для vk_k14m@vk

Старожил


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

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


Цитата ErikPshat:
ну свою прогу вы можете распаковать этим: Inno Setup Unpacker
Секцию Code вы конечно не дизассемблируете, т.к. она в бинарном виде изначально будет упакована, но всё остальное прекрасно извлекается.
А вот надо сначала узнать, в какой программе был создан экзешник, потом извлекать соответствующим софтом. »
Жаль. Тот установщик который я хочу распаковать не содержит в себе файлов. Он качает их откуда-то в интернете. Так что скорее всего мне именно секция Code и нужна.

А можно как то узнать в какой программе был создан установщик?

-------
Взялся отвечать, отвечай до конца!


Отправлено: 01:04, 14-06-2019 | #338


Аватара для ErikPshat

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


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

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


Цитата vk_k14m@vk:
А можно как то узнать в какой программе был создан установщик? »
Вот вам список прог в помощь: PEiD, DiE (Detect It Easy), Bit Detector, SCANiT, ExeScan, FastScanner и PE Tools
Ну или вот вам пару ресурсов:
  1. https://exelab.ru/download.php
  2. http://www.manhunter.ru/underground/...ih_faylov.html

Последний раз редактировалось ErikPshat, 14-06-2019 в 03:15.

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

Отправлено: 01:33, 14-06-2019 | #339


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

Ветеран


Contributor


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

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


Цитата vk_k14m@vk:
Вот только файл config.ksc с текстом в папке с игрой не появляется. Может я что-то не так сделал? »
vk_k14m@vk, ой, не все скопировал у себя, когда пост оформлял. Добавить в [Files] пустышку config.ksc:
Код: Выделить весь код
[Files]
Source: config.ksc; DestDir: {app}; AfterInstall: SetSaveDataLocation
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:54, 14-06-2019 | #340



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

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

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




 
Переход