Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 9]
Все установочные файлы находятся в папках, рядом с инсталятором. »
Все установочные файлы с папками, что рядом с инсталлятором, которые нужно упаковать, положите, например, в одну папку "AOE_Distr".
Чтобы при запуске, он распаковывал их во временную папку, а после окончания работы инсталятора, удалял их. »
[Setup]
Compression=lzma2/ultra64
InternalCompressLevel=ultra64
SolidCompression=yes
[Files]
Source: AOE_Distr\*; DestDir: {tmp}; Flags: recursesubdirs createallsubdirs
И везде в своем скрипте замените {src} на {tmp}.
Только учтите, в вашем скрипте отключен прогресс распаковки файлов, если на их распаковку (во временную папку) нужно время (большой объем), то визуально это будет смотреться, как будто ничего не происходит.
pzadrotov@vk
12-09-2020, 12:54
в вашем скрипте отключен прогресс распаковки файлов »файлы не большие, но прогресс распаковки все же включил, спасибо. Но отключил полностью сжатие, так как на выходе получается практически одинаковый размер инсталлятора. А время на распаковку существенное, по сравнению с копированием.
Спасибо за подсказку, все получилось, все устанавливается. Но есть маленькое НО. Код, который должен запускать в самом начале главный сетап, почему то не срабатывает. Пришлось его закомментировать и добавить запуск в секцию [run]. В общем вот такой скрипт получился:
#define MyAppName "AOE"
#define MyAppVersion "AOE"
[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVersion}
CreateAppDir=no
OutputDir=C:\Users\AspireM3400\Desktop
OutputBaseFilename=AOE Setup
Compression=none
;SolidCompression=yes
WizardStyle=modern
Uninstallable=no
[code]
procedure InitializeWizard();
begin
//WizardForm.FilenameLabel.Hide //Прячем извлекаемые файлы
WizardForm.ProgressGauge.Hide //Прячем прогресс-бар
end;
//function InitializeSetup(): boolean;
//var
// ResultCode: integer;
//begin
// if Exec(ExpandConstant('{tmp}\RU\setup.exe'), '', '', SW_SHOW,
// ewWaitUntilTerminated, ResultCode) then
// begin
// end
// else begin
// end;
// Result := True;
//end;
[Files]
Source: "C:\Users\AspireM3400\Desktop\AOE1\*"; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs;
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Run]
Filename: "{tmp}\RU\setup.exe";
Filename: "{tmp}\RUROR\setup.exe"; Tasks: "AOE_ROR";
Filename: "{tmp}\UPatch HD Setup.exe"; Tasks: "AOE_UP";
[Tasks]
Name: "AOE_ROR"; Description: "AOE ROR(RU)";
Name: "AOE_UP"; Description: "UPatch";
Слегка сбита последовательность установки, то есть сначала выбираются доп.компоненты, а потом начинает установка главной программы, затем установка допов.
Можно ли делать DiskSpanning для отдельных файлов, т.е. паковать в .bin не обязательные для скачивания конкретные файлы типа озвучки?
pzadrotov@vk
12-09-2020, 22:09
решил копнуть глубже и новая заморочка с удалением:
По умолчанию при установке создается унинстал, который удаляет приложение, но не удаляет "мусор", который оставляет приложение в процессе работы и саму папку. Как сделать, чтоб при удалении был запрос типа: удалять все полностью, или оставить папку с мусором?
pzadrotov@vk
Слегка сбита последовательность установки, то есть сначала выбираются доп.компоненты, а потом начинает установка главной программы, затем установка допов.
Скрипт, во время компиляции читается сверху вниз, и устанавливается в каком порядке находятся папки или файлы в секции [Files]. Размести папки или файлы в той последовательности в секции [Files] в какой они должны устанавливаться.
По умолчанию при установке создается унинстал, который удаляет приложение, но не удаляет "мусор", который оставляет приложение в процессе работы и саму папку.
Деинсталлятор удаляет только то что прописано в скрипте. Но так-как почти каждая программа при первом запуске создает в разных директориях свои папки для работы, то для таких целей (удаление мусора как вы выразились) в Inno Setup есть секция [UninstallDelete],
в которой прописываются все "мусорные" папки с адресами к ним.
Как то так:
[UninstallDelete]
Type: files; Name: "{win}\MYPROG.INI" = Параметр Name указывает имя отдельного файла или маску
Type: filesandordirs; Name: ""{pf}\4KDownload\4kvideodownloader"; = Функции те же, что и у files за исключением, что также может задавать имя папки, в этом случае удаляются все ее файлы и подпапки.
Type: dirifempty; Name: "{localappdata}\4kdownload.com" = При использовании этого типа параметр Name должен задавать папку, но не содержать масок. Папка будет удалена только если она пустая.
Как сделать, чтоб при удалении был запрос типа: удалять все полностью, или оставить папку с мусором?
В этом случае вам придется создать свою страницу перед страницей с прогресс баром деинсталлятора, и разместить на ней свои компоненты (чекбоксы, радиобатоны, лейблы), чтобы у пользователя был выбор что делать.
И второй вариант разместить свои компоненты непосредственно на странице с прогресс баром деинсталлятора, в данном случае удалятся будет в реальном времени, то есть только чекбокс отметили сразу все удалилось. При нажатии "Далее" начнется удаление основной папки программы.
pzadrotov@vk
15-09-2020, 12:34
ZVSRus, boss911, спасибо, очень помогли, все работает и удаляется правильно.
Возможно ли еще как то убрать последнее окно оповещения "Завершение установки" с кнопочкой <Завершить>? Потому что последний файл инсталятора, после установки автоматически запускает приложение, которое порой(не всегда), закрывает окно "Завершение установки". В итоге это окно продолжает висеть, на заднем фоне.
Постарался расписать подробно. :unsure:
Да, еще вот что. Я сделал запись в реестр, чтоб инсталятор делал проверку на наличие установленной программы и в успешном случае, не устанавливал повторно.
Писал по стандарту Root: HKLM.... и далеее, но посмотрел в реестр, почему то запись идетне в HKEY_LOCAL_MACHINE, а в HKEY_CURRENT_USER. Можете сказать почему так?
Возможно ли еще как то убрать последнее окно оповещения "Завершение установки" с кнопочкой <Завершить>? »
[Setup]
DisableFinishedPage=yes
Я сделал запись в реестр, чтоб инсталятор делал проверку на наличие установленной программы и в успешном случае, не устанавливал повторно.
Писал по стандарту Root: HKLM.... и далеее, но посмотрел в реестр, почему то запись идетне в HKEY_LOCAL_MACHINE, а в HKEY_CURRENT_USER. Можете сказать почему так?
Проверьте внимательно свой сценарий ещё раз, что и куда вы пишете. Сам инсталлятор не занимается самодеятельностью.
pzadrotov@vk
15-09-2020, 14:27
За "завершение установки", спасибо, не показывается больше.
Проверьте внимательно свой сценарий ещё раз, что и куда вы пишете. Сам инсталлятор не занимается самодеятельностью. »
Но это совсем не мой сценарий, я в него даже не лез, просто декомпилировал установочный файл, чтоб посмотреть как идет запись в реестр, чтоб сделать проверку на наличие установки.
Более того, я сделал проверку на наличие установки
[code]
function InitializeSetup(): Boolean;
begin
Result:= True;
if RegValueExists(HKLM, 'SOFTWARE\Microsoft\Games\Age of Empires\1.00', 'CDPath') then begin
MsgBox('Age of Empires уже установлена! Установка будет прекращена', mbConfirmation, MB_OK);
Result:= False;
end;
end;
И что интересно, проверка работает правильно, но в реестре по данной ветке нет записей, зато есть в HKEY_CURRENT_USER по этому же пути.
pzadrotov@vk
Я сделал запись в реестр, чтоб инсталятор делал проверку на наличие установленной программы и в успешном случае, не устанавливал повторно.
Ну чтобы вам что-то подсказать, нужно видеть что вы пишете и где, хотя бы кусок скрипта.
Второе, может сделали запись не в реестр, а в скрипт прописали какой то код чтобы шла проверка на наличие записей в реестре, и далее устанавливать программу или нет.
И еще, если вы доводите до ума тот скрипт что выкладывали выше (пост #676) где у вас в секции [RUN] идет запуск 3 отдельных сетапников, а сам ваш инстал пустой, как вы описывали ранее, тогда просто нужно смотреть скрипт, что, куда и как.
Писал по стандарту Root: HKLM.... и далеее »
Покажите эту строку из [Registry] полностью. Если установка проводится на x64 OS, реестр смотрите и в \SOFTWARE\Wow6432Node.
pzadrotov@vk
15-09-2020, 15:33
Цитата boss911:
смотрите и в \SOFTWARE\Wow6432Node »
Точно, так и есть, спасибо, помогли разобраться. Вот полная строка:
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Games\Age of Empires\1.00"; ValueName: "CDPath"; ValueType: String; ValueData: "{src}"; Flags: uninsdeletekey
pzadrotov@vk
15-09-2020, 16:00
И еще, по поводу HKEY_CURRENT_USER, чтоб вы не удивлялись почему там появляется запись в реестре, туда тоже прописывается куча чего то:
[Registry]
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; MinVersion: 0,5.01; Flags: uninsdeletekey
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; MinVersion: 0,5.01; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "Default (1024x768)"; Check: "isRes0"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1024x600"; Check: "isRes1"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1280x720"; Check: "isRes2"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1280x800"; Check: "isRes3"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1280x1024"; Check: "isRes4"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1360x768"; Check: "isRes5"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1366x768"; Check: "isRes6"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1440x900"; Check: "isRes7"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1600x900"; Check: "isRes8"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1680x1050"; Check: "isRes9"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1920x1080"; Check: "isRes10"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "1920x1200"; Check: "isRes11"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Res"; ValueType: String; ValueData: "2560x1440"; Check: "isRes12"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$0"; Check: "isRes0"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$1"; Check: "isRes1"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$2"; Check: "isRes2"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$3"; Check: "isRes3"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$4"; Check: "isRes4"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$5"; Check: "isRes5"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$6"; Check: "isRes6"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$7"; Check: "isRes7"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$8"; Check: "isRes8"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$9"; Check: "isRes9"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$A"; Check: "isRes10"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$B"; Check: "isRes11"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ResNum"; ValueType: Dword; ValueData: "$C"; Check: "isRes12"; MinVersion: 0,5.01;
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$400"; Check: "isRes0"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$400"; Check: "isRes1"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$500"; Check: "isRes2"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$500"; Check: "isRes3"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$500"; Check: "isRes4"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$550"; Check: "isRes5"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$556"; Check: "isRes6"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$5A0"; Check: "isRes7"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$640"; Check: "isRes8"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$690"; Check: "isRes9"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$780"; Check: "isRes10"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$780"; Check: "isRes11"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Upatch Size"; ValueType: Dword; ValueData: "$A00"; Check: "isRes12"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Ver"; ValueType: Dword; ValueData: "$2AFC"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Wnd"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01; Flags: createvalueifdoesntexist
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "EditorEnh"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01; Flags: createvalueifdoesntexist
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "EnableHT"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01; Flags: createvalueifdoesntexist
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "EnableHU"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01; Flags: createvalueifdoesntexist
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$1"; Check: "isEN"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$2"; Check: "isDE"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$3"; Check: "isFR"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$4"; Check: "isES"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$5"; Check: "isIT"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$6"; Check: "isPT"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$7"; Check: "isPL"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$8"; Check: "isRU"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$9"; Check: "isCNt"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "LangNum"; ValueType: Dword; ValueData: "$A"; Check: "isCNs"; MinVersion: 0,5.01;
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ModNameDir"; ValueType: String; ValueData: "<None>"; MinVersion: 0,5.01;
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "UseSPName"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01; Flags: createvalueifdoesntexist
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ImproveRC"; ValueType: Dword; ValueData: "$1"; MinVersion: 0,5.01;
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "UP_ShowS"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01; Flags: createvalueifdoesntexist uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "UP_ShowT"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01; Flags: createvalueifdoesntexist uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Path Finding"; ValueType: Dword; ValueData: "$3"; MinVersion: 0,5.01;
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "MP Path Finding"; ValueType: Dword; ValueData: "$3"; MinVersion: 0,5.01;
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Music Volume"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01;
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "Sound Volume"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01;
Root: HKLM; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "UPatch Mouse"; ValueType: Dword; ValueData: "$0"; MinVersion: 0,5.01; Flags: createvalueifdoesntexist uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Games\Age of Empires\1.00"; ValueName: "UP Scrolling"; ValueType: Dword; ValueData: "$28"; MinVersion: 0,5.01; Flags: uninsdeletevalue
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.0"; ValueName: "Zone"; MinVersion: 0,5.01; Flags: deletevalue
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Lang"; MinVersion: 0,5.01; Flags: deletevalue
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ShowS"; MinVersion: 0,5.01; Flags: deletevalue
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "ShowT"; MinVersion: 0,5.01; Flags: deletevalue
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Microsoft Games\Age of Empires Expansion\1.1"; ValueName: "Launched"; MinVersion: 0,5.01; Flags: deletevalue
Root: HKCU; Subkey: "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueName: "{app}\EMPIRESX.EXE"; MinVersion: 0,5.01; Flags: deletevalue
Root: HKLM; Subkey: "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueName: "{app}\EMPIRESX.EXE"; MinVersion: 0,5.01; Flags: deletevalue
Root: HKLM; Subkey: "SOFTWARE\Microsoft\DirectDraw\Compatibility\Age of Empires Expansion"; MinVersion: 0,5.01; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Microsoft\DirectDraw\Compatibility\Age of Empires Expansion"; ValueName: "Name"; ValueType: String; ValueData: "EMPIRESX.EXE"; MinVersion: 0.0,6.0;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\DirectDraw\Compatibility\Age of Empires Expansion"; ValueName: "ID"; ValueType: Binary; ValueData: "66 AD 44 38"; MinVersion: 0.0,6.0;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\DirectDraw\Compatibility\Age of Empires Expansion"; ValueName: "Flags"; ValueType: Binary; ValueData: "00 08 00 00"; MinVersion: 0.0,6.0;
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueName: "{app}\EMPIRESX.EXE"; ValueType: String; ValueData: "~ DWM8And16BitMitigation HighDpiAware"; MinVersion: 0.0,6.02;
Root: HKLM64; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueName: "{app}\EMPIRESX.EXE"; ValueType: String; ValueData: "~ DWM8And16BitMitigation HighDpiAware"; Check: "IsWin64"; MinVersion: 0.0,6.02;
Otake2018
05-10-2020, 17:29
Здраствуйте. Подскажите пожалуйста, как прописать в скрипте проверку MD5 определенного файла по пути "корневая папка"/dta/languagecore.pbo.dayz.bisign. Если MD5 совпало - устанавливать. Не совпало - не устанавливать и показать экран с ошибкой. С другом соорудили вот такой скрипт. Проблема в том, что даже когда ошибка показывается, установка всё равно продолжается. Помогите пожалуйста решить проблему.
[Code]
Function GetInstallDir(Dir: String): String;
var
Win64: String;
begin
Dir := '';
case IsWin64 of
True: Win64 := '\Wow6432Node';
False: Win64 := '';
end;
RegQueryStringValue(HKLM, 'Software' + Win64 + '\bohemia interactive\dayz','main', Dir);
Result := Dir;
end;
[Languages]
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
[Files]
Source: "D:\Дейз\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[code]
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
MD5: String;
LanguagecorepbodayzbisignDirectory: String;
MD5_NEEDED: String;
begin
LanguagecorepbodayzbisignDirectory:= WizardDirValue() + '\dta\languagecore.pbo.dayz.bisign';
MD5_NEEDED:= '472DB8D2BD38B235D9B4CCE7AF3B063B7C5A9F41';
Log('File path:' + LanguagecorepbodayzbisignDirectory);
MD5 := GetMD5OfFile(LanguagecorepbodayzbisignDirectory);
Log('MD5: ' + MD5);
if not (MD5 = Lowercase(MD5_NEEDED)) then
begin
MsgBox('Текст', mbError, mb_Ok);
end;
end;
end.
El Sanchez
07-10-2020, 07:10
С другом соорудили вот такой скрипт. Проблема в том, что даже когда ошибка показывается, установка всё равно продолжается. »
Otake2018, функция PrepareToInstall должна возвращать строку, например, Result := 'Текст ошибки', MsgBox тут не нужен.
DirtyJohny
10-10-2020, 18:13
Я возможно конкретно запоздал с темой.Я новичок в данной теме и напоролся на один баг,на который не смог найти исправление.Дело в скине а точнее в белой полоске.Перерыл многие сайты и гайды заметил,что даже в них эта полоска не фиксировалась,можно ли ее закрасить?Сам скин идеален.Даже пробовал замену ISSkinU.dll, не помогает. Версии Inno тоже пробовал разные, помогите,если не трудно)Исходник тоже прикреплю.
habib2302
10-10-2020, 18:49
DirtyJohny, это нормальное явление. используйте vlc стили
DirtyJohny
10-10-2020, 19:49
habib2302, Воу, а как можно заюзать, не подскажешь?
habib2302
10-10-2020, 20:27
DirtyJohny, https://krinkels.org/threads/vcl-styles-for-inno-setup.2349/
DirtyJohny
11-10-2020, 11:45
habib2302, Огромное спасибо за наводку. Единственное,что осталось так это цвет шрифта в основном окне, как можно исправить?)Я думаю полезно будет для других оставить акутальные ссылки на компоненты VCL, потому прилагаю ссылку на Inno setup https://yadi.sk/d/aIme10_Lk0z1mQ и на последнюю версию Setup VCL Styles Inno https://github.com/RRUZ/vcl-styles-plugins/releases/tag/1.5.4.1
habib2302
11-10-2020, 12:25
DirtyJohny, для каждого элемента надо указывать цвет
procedure InitializeWizard();
begin
with WizardForm.SelectDirLabel do
begin
Font.Color := clGreen;
ParentFont := False;
end;
end;
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.