|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме 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 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить 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 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить 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 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить 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 | |
|