Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]
поправте. »Поправил:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=C:\Users\ww\Desktop
DisableReadyPage=True
DisableReadyMemo=True
DisableFinishedPage=True
[Files]
Source: "C:\Program Files (x86)\Inno Setup 5\Dll Pack\ISSkin.dll"; DestDir: "{app}"; Flags: ignoreversion dontcopy
Source: "C:\Program Files (x86)\Inno Setup 5\IS_Skin\Styles\Chromium.cjstyles"; DestDir: "{tmp}"; Flags: ignoreversion dontcopy
Source: "..\skf.exe"; DestDir: "{tmp}"; Flags: ignoreversion
[Code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';
function InitializeSetup(): Boolean;
var
ErrorCode: Integer;
begin
if not FileExists(ExpandConstant('{tmp}\skf.exe')) then ExtractTemporaryFile('skf.exe');
Exec(ExpandConstant('{tmp}\skf.exe'), '', '', SW_Hide, ewWaitUntilTerminated , ErrorCode);
result:=True;
ExtractTemporaryFile('Chromium.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Chromium.cjstyles'), '');
Result := True;
end;
procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
Sleep(110);
UnloadSkin();
end;
P.S pollipen, Также это (http://forum.oszone.net/post-2270836-1700.html) прочтите.
Ну нет же »
Вы, прежде чем так категорично отвечать, сначала бы проверили скрипт, почитали, что такое Wow6432Node, а так отбивает всякое желание вам помогать. HKLM\SOFTWARE\Wow6432Node в вашем REG примере свидетельствует о том, что 32-bit приложение (игра) было установлено в OS 64-bit. При установке 32-bit приложения в OS 64-bit, WOW64 автоматически перенаправляет реестр и файлы в соответствующие ветки и папки. Мой пример скрипта написан для 32-bit приложения, и он корректно отработает, как в OS 32-bit, так и в OS 64-bit. И еще раз: сначала проверяем и только потом отписываемся, что что-то не так.
Ну нет же,мой пример под x64,вот же путь [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Electronic Arts\EA Games] »Я надеялся вы пошутили - оказывается вы правда не понимаете.
Для начала изучите реестр.
Затем изучите Inno.
После этого что-то будете утверждать если получится.
У вас по умолчанию содержимое будет извлечено в "C:\Program Files (x86)", а данные реестра внесены в "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node" - Поскольку сам исполняемый файл является как x32 приложение.
Чтоб по умолчанию устанавливалось в "C:\Program Files" а данные реестра вносились в "HKEY_LOCAL_MACHINE\SOFTWARE" необходимо приложение пометить как явное x64 - Для этого нужно в секции [Setup] (http://www.jrsoftware.org/ishelp/index.php?topic=setupsection) установить директиву ArchitecturesInstallIn64BitMode (http://www.jrsoftware.org/ishelp/index.php?topic=setup_architecturesinstallin64bitmode) со значением x64:
[Setup]
ArchitecturesInstallIn64BitMode=x64
Если хотите чтоб приложение x32 устанавливало программу в системе x64 как для x64 - нужно в секции [Setup] (http://www.jrsoftware.org/ishelp/index.php?topic=setupsection), в директиве DefaultDirName (http://www.jrsoftware.org/ishelp/index.php?topic=setup_defaultdirname), заменить константу (http://www.jrsoftware.org/ishelp/index.php?topic=consts) {pf} (http://www.jrsoftware.org/ishelp/index.php?topic=consts&anchor=pf) на {pf64} (http://www.jrsoftware.org/ishelp/index.php?topic=consts&anchor=pf64)
DefaultDirName={pf64}\Example
Равно как и для реестра в секции [Registry] (http://www.jrsoftware.org/ishelp/index.php?topic=registrysection) - В корне (http://www.jrsoftware.org/ishelp/index.php?topic=registrysection&anchor=Root) вместо HKLM указать HKLM64
[Registry]
Root: "HKLM64"; Subkey: "SOFTWARE\Test"; ValueType: string; ValueName: "UninstProg"; ValueData: """{cf64}\Installer"""; Flags: uninsdeletekeyifempty uninsdeletevalue
По этому давайте не будете писать нелепицу, я уже начинаю путаться от подобной чуши которую вы представляете.
Тут надо не реестр изучать, а MSDN и TechNet: принципы функционирования x86-приложений под x64 ОС, что такое перенаправление, как оно работает, к каким объектам файловой системы и к каким разделам реестра оно применяется, как и в каких случаях может быть отключено, и т.д, и т.п. И это — помимо общих принципов, по которым должны работать инсталляторы в «родной среде». В общем, учиться, учиться и учиться читать, читать и читать. Потом пробовать, пробовать и пробовать, раз за разом набивая собственные шишки на собственных ошибках. Иначе («ну ничё не получается, памажите люди добрые, сделайте всё за меня») толку не будет. Никакого.
подскажите пожалуйста,где путь лежит к этим шрифтам https://s8.hostingkartinok.com/uploads/images/2017/12/509a3b477d819746d540f1ced42b2a72.png
подскажите пожалуйста,где путь лежит к этим шрифтам »%WinDir%\Fonts
Если шрифт изменить хотите, то:
[Code]
procedure InitializeWizard();
begin
WizardForm.PageDescriptionLabel.Font.Name := 'Times New Roman';
WizardForm.PageNameLabel.Font.Name := 'Times New Roman';
end;
Свой шрифт в инсталляторе (вариант №1) (http://forum.oszone.net/post-1875376-964.html) - пример скрипта для использования своего шрифта в инсталляторе, (ссылка на сообщение);
Свой шрифт в инсталляторе (вариант №2) (http://forum.oszone.net/post-1973652-702.html) - пример скрипта для использования своего шрифта в инсталляторе, (ссылка на сообщение); »
Nordek, нет,хочу переименовать,всё не могу найти
нет,хочу переименовать,всё не могу найти
Чтобы что то найти, нужно сначала сообразить как это окно (в данном случае) называется (на что вы нажали, что появилось именно это окно, а не какое то другое).
Я думал что вы хоть немного начали ориентироваться где что находиться, а вы все там же!
ZVSRus, я новичок в этом деле
хочу переименовать,всё не могу найти »Смотрите по знакомым словам в основном скрипте или подключаемых, например "Cancel unpacking"
https://s8.hostingkartinok.com/uploads/images/2017/12/509a3b477d819746d540f1ced42b2a72.pngКлавиши CTRL+F и F3 - Работают.
искал везде но не нашло
Ну во первых наверное, не нашло, а, не нашёл!
Я вам уже говорил, что все в данном проекте разбросано по подключаемым модулям. Окно что вы показываете, это форма вызванная нажатием кнопки отмена. Открываем папку modules и видим cancel form.iss. Все что там находится относится к данной форме отмены. И уже по названиям лейблов ищем все компоненты.
ZVSRus, нашёл change lang прописоноКлавиши CTRL+F помог спасибо
там "Нажмите «Да», чтобы выйти из программы установки"недописанный "«Нет», чтобы продолжить." если прописать то сежает куда то если в центр то английский из центро пропадает
всё в одном кординате вздвиге прописон ,как бы отдельно можно приписать?
всё в одном кординате вздвиге прописон ,как бы отдельно можно приписать?
Ничего не понял, ещё раз, поподробней, и по понятней!
Я вам уже говорил, что все в данном проекте разбросано по подключаемым модулям. »
в этом скрипте не так http://rgho.st/8kK9cYq6r всё в одном,потом автор скрипте выложил всё по полочкам там и md5 есть и это окно http://www.picshare.ru/uploads/171226/UX9WP71bwy.jpg
можно ли как не будь выковыривоть эту окну http://www.picshare.ru/uploads/171226/UX9WP71bwy.jpg
Ничего не понял, ещё раз, поподробней, и по понятней! »
если передвинуть в центр https://s8.hostingkartinok.com/uploads/images/2017/12/f40c932dab677087c75319ccfec06ccf.png https://s8.hostingkartinok.com/uploads/images/2017/12/b54ca97960a1eac3cd9ae673c8c8ebfa.png
и надпись с английского передвигаедся https://s8.hostingkartinok.com/uploads/images/2017/12/965a9ba392291333e3b0717066caec23.png ,можноли всё это отдельно сделать чтобы отдельно передвигалось
в этом скрипте не так http://rgho.st/8kK9cYq6r всё в одном,потом автор скрипте выложил всё по полочкам там и md5 есть и это окно http://www.picshare.ru/uploads/171226/UX9WP71bwy.jpg
Ну по первых, что вы показываете, это не окно а стандартная страница ReadyPage, страница готовности, которая никого ни к чему не обязывает (некоторые товарищи плюются на данную страницу, лишний раз нужно нажимать на кнопку далее) в данном скрипте она включена, в скрипте что вы переделываете она отключена (пропущена). Ничего выковыривать, ни откуда не нужно.
В скрипте что вы переделываете, нужно внимательно пошариться, и включить данную страницу (для каких целей не понятно), но как она будет выглядеть, это уже большой вопрос, потому что данный скрипт написан с нуля (от Inno Setup там осталось одно название), все родные компоненты скрыты.
На счет второго вопроса, я уже честно запутался, то вы с одного скрипта покажете скриншот, то от другого, из двух скриптов собирать один (какой вы хотите) вам никто не будет, сделайте за меня, это уже вопрос для другой темы.
подскажите пожалуйста как включить такое окно http://www.picshare.ru/uploads/171226/UX9WP71bwy.jpg
вот скрип с файлами http://rgho.st/8TsjZx2Y6
подскажите пожалуйста как включить такое окно http://www.picshare.ru/uploads/171226/UX9WP71bwy.jpg »
[Setup]
DisableReadyPage=no
По умолчанию страница включена (DisableReadyPage=no), так что либо укажите no, либо вообще уберите эту дерективу.
boss911, убрал но всё равно не показывается это страничка
убрал но всё равно не показывается это страничка
Если вы сделали как вам подсказал boss911, то страничка показывается, только она имеет вид предыдущей страницы
(Компоненты, Дополнительные задачи и Ярлыки), обрати внимание, когда на странице Компоненты, Дополнительные задачи и Ярлыки вы нажимаете на кнопку установить, то у вас ощущение что как бы ничего не произошло, никуда вас не перекинуло, на самом деле вы уже находитесь на странице ReadyPage ту что включили, то есть по внешнему виду вам показывается страница Компоненты, Дополнительные задачи и Ярлыки как бы два раза. Я же вам написал выше (но как она будет выглядеть, это уже большой вопрос). Это потому что OuterNotebook скорее всего скрыт (сам по скрипту и модулям не выискивал), так как у всех компонентов на всех страницах родитель WizardForm. Каждая страница отрисовывалась по отдельности. В папке modules есть hides.iss где все компоненты что задумал автор скрипта скрыты, а уже в моделе page.iss на разных страницах показываются соответствующие компоненты.
Но так как для страницы ReadyPage нет никаких компонентов, да и в скрипте нет ничего для данной страницы, вот по этому на ней отображается все что на предыдущей странице. Выхода два, перенести что связано с данной страницей из другого скрипта, или отрисовывать данную страницу вновь.
Но это как говорится, уже другая история.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.