|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1265 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты 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 |
Старожил Сообщения: 342
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
|
|
------- Последний раз редактировалось vk_k14m@vk, 09-06-2019 в 20:24. Отправлено: 17:41, 09-06-2019 | #331 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 342
|
Профиль | Отправить PM | Цитировать Народ. Есть игра, в корне которой лежит текстовый файл config.ksc, с текстом
d/документы/fateavedata - это папка в которую игра будет сохранятся. Так вот как бы настроить создание этого файла в установщике? Нужно что б на странице выбора папки установки игры, или на следующей после этой странице можно было выбрать путь к папке сохранения (и создание этой папки если ее нет). И после завершения установки этот путь должен прописаться в файле config.ksc Как бы это провернуть? Надеюсь на вашу помощь... |
------- Последний раз редактировалось vk_k14m@vk, 12-06-2019 в 20:54. Отправлено: 20:04, 12-06-2019 | #332 |
Ветеран Сообщения: 1265
|
Профиль | Отправить 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 |
Ветеран Сообщения: 857
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
|
|
------- Отправлено: 19:32, 13-06-2019 | #334 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Dodakaedr, никаких. Для ANSI и OEM нет BOM.
|
Отправлено: 20:53, 13-06-2019 | #335 |
Старожил Сообщения: 342
|
Профиль | Отправить PM | Цитировать El Sanchez, к сожалению твой код не работает. Или правильнее будет сказать, работает не до конца. Страница в выбором папки установки и правда появилась.
https://i106.fastpic.ru/big/2019/061...eabf7dd4c8.png Вот только файл config.ksc с текстом в папке с игрой не появляется. Может я что-то не так сделал? Скрытый текст
; Скрипт создан при помощи мастера создания скриптов. ; СМ. ДОКУМЕНТАЦИЮ ДЛЯ ИЗУЧЕНИЯ ДЕТАЛЕЙ ОТНОСИТЕЛЬНО СОЗДАНИЯ ФАЙЛОВ СКРИПТА 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 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать vk_k14m@vk, ну свою прогу вы можете распаковать этим: Inno Setup Unpacker
Секцию Code вы конечно не дизассемблируете, т.к. она в бинарном виде изначально будет упакована, но всё остальное прекрасно извлекается. А вот надо сначала узнать, в какой программе был создан экзешник, потом извлекать соответствующим софтом. |
Отправлено: 01:01, 14-06-2019 | #337 |
Старожил Сообщения: 342
|
Профиль | Отправить PM | Цитировать Цитата ErikPshat:
А можно как то узнать в какой программе был создан установщик? |
|
------- Отправлено: 01:04, 14-06-2019 | #338 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Цитата vk_k14m@vk:
Ну или вот вам пару ресурсов: |
|
Последний раз редактировалось ErikPshat, 14-06-2019 в 03:15. Отправлено: 01:33, 14-06-2019 | #339 |
Ветеран Сообщения: 1265
|
Профиль | Отправить PM | Цитировать Цитата vk_k14m@vk:
|
|
Отправлено: 09:54, 14-06-2019 | #340 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|