Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 4]
Sotonisto
14-05-2012, 21:52
R.i.m.s.k.y., это скрипт инсталлятора CoD:BO (не помню откуда скачал). Вот все файлы (http://rghost.ru/38086233), которые используются.
Gnom_aka_Lexander
14-05-2012, 22:01
Sotonisto, на юникоде компилишь?
91892823
14-05-2012, 22:25
Здравствуйте! Долго пытался найти ответ на свои вопросы, но, к сожалению, мне это не удалось, а посему пишу здесь.
Имеются два портабельных фоошопа (64/32бит).
Вот мой скрипт
[hr]
[Setup]
; Примечание: Значение AppId идентифицирует это приложение.
; Не используйте одно и тоже значение в разных установках.
; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.)
AppId={{3562ED3D-276F-4466-9D11-F327086006B5}
AppName=PS
AppVersion=13.0
;AppVerName=PS 13.0
DefaultDirName={pf}\PS32
DisableDirPage=yes
DefaultGroupName=PS
DisableProgramGroupPage=yes
OutputDir=E:\ТемР\4556
OutputBaseFilename=setup
SetupIconFile=E:\44к.ico
Compression=lzma
SolidCompression=yes
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
Source: "C:\Program Files\Adobe Photoshop CS6 (x32)\*"; DestDir: {app}; Flags: ignoreversion
Source: "C:\Program Files\Adobe Photoshop CS6 (x64)\*"; DestDir: {app}; Flags: ignoreversion
[Icons]
Name: {commondesktop}\Ps; Filename: {app}\PhotoshopCS6Portable.exe; WorkingDir: {app}; Check: not IsWin64
Name: {commondesktop}\Ps; Filename: {app}\Photoshopx64Portable.exe; WorkingDir: {app}; Check: IsWin64
[hr]
Задача:
1. Установка без вывода любых окон, кроме полоски процесса распаковки.
2. Автоматическое определение битности системы, и, соответственно, установка нужного.
Заранее благодарю.
Gnom_aka_Lexander
14-05-2012, 23:00
91892823, Так, может?
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files]
Source: "C:\Program Files\Adobe Photoshop CS6 (x32)\*"; DestDir: {app}; Flags: ignoreversion; Check: not IsWin64
Source: "C:\Program Files\Adobe Photoshop CS6 (x64)\*"; DestDir: {app}; Flags: ignoreversion; Check: IsWin64
[Icons]
Name: {commondesktop}\Ps; Filename: {app}\PhotoshopCS6Portable.exe; WorkingDir: {app}; Check: not IsWin64
Name: {commondesktop}\Ps; Filename: {app}\Photoshopx64Portable.exe; WorkingDir: {app}; Check: IsWin64
[*code] {тут нужно убрать звездочку}
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result:=true;// просто пропускаем все страницыю Останется страница готовности - ее просто так не скрыть.
end;
procedure WizardFormShow(Sender: TObject);
begin
WizardForm.NextButton.OnClick(nil); // нажимает на кнопку далее, в момент показа окна инсталла.
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
Show; // без этой строчки будет ошибка при вызове OnShow.
OnShow := @WizardFormShow;
end;
end;
Sotonisto
14-05-2012, 23:49
Лександер, без понятия, но вроде бы да :) Если это имеет большое значение - могу установить Ansi.
P.S.: А в чем разница между Unicode и Ansi версиями?
Devils Night
15-05-2012, 00:05
91892823, И ещё, если уж делаешь портейбл, то в секцию [Setup] добавь строку
Uninstallable=false
ну или же
CreateUninstallRegKey=false
UpdateUninstallLogAppName=false
91892823
15-05-2012, 00:10
Лександер, 1. Установка без вывода любых окон, кроме полоски процесса распаковки. - задача, можно сказать, выполнена.
А вот строки..
[Files]
Source: "C:\Program Files\Adobe Photoshop CS6 (x32)\*"; DestDir: {app}; Flags: ignoreversion; Check: not IsWin64
Source: "C:\Program Files\Adobe Photoshop CS6 (x64)\*"; DestDir: {app}; Flags: ignoreversion; Check: IsWin64
не подходят, потому что во время компиляции распознается битность (у меня 32) и 64 не компилируется в инталлятор..
Вроде так.. И подкаталоги (C:\Program Files\Adobe Photoshop CS6 (x32)\App" и "C:\Program Files\Adobe Photoshop CS6 (x64)\App") тоже не компилируются..
Devils Night
15-05-2012, 00:25
не подходят, потому что во время компиляции распознается битность (у меня 32) и 64 не компилируется в инталлятор.. »У меня тоже 32 бита и всё компилируется.
1. ты уверен что для 32 битной находится в C:\Program Files\Adobe Photoshop CS6 (x32) а для 64 битной в C:\Program Files\Adobe Photoshop CS6 (x64)?
2. Может лучше засунуть скрипт для надёжности непосредственно в Program Files, и изменить пути на такие:
Source: Adobe Photoshop CS6 (x32)\*; DestDir: {app}; Flags: ignoreversion; Check: not IsWin64
Source: Adobe Photoshop CS6 (x64)\*; DestDir: {app}; Flags: ignoreversion; Check: IsWin64?
Да и учти, при установке у тебя распакуется только для 32 бита.
Для проверки, мол запаковались ли файлы для 32 бита и/или для 64 бита, сначала скомпиль как есть, переименуй инсталл, а потом по очереди закомментируй по строке, сначала 32
[Files]
;Source: Adobe Photoshop CS6 (x32)\*; DestDir: {app}; Flags: ignoreversion; Check: not IsWin64
Source: Adobe Photoshop CS6 (x64)\*; DestDir: {app}; Flags: ignoreversion; Check: IsWin64
, а потом 64
[Files]
Source: Adobe Photoshop CS6 (x32)\*; DestDir: {app}; Flags: ignoreversion; Check: not IsWin64
;Source: Adobe Photoshop CS6 (x64)\*; DestDir: {app}; Flags: ignoreversion; Check: IsWin64
и посмотри размеры инсталлятора.
91892823
15-05-2012, 00:43
Devils Night,
1. ты уверен что для 32 битной находится в C:\Program Files\Adobe Photoshop CS6 (x32) а для 64 битной в C:\Program Files\Adobe Photoshop CS6 (x64)? - Да, это точно.
2. Может лучше засунуть скрипт для надёжности непосредственно в Program Files, и изменить пути на такие: - Так и сделал, но результат тот же - 64х(520 мб) и 32х(470 мб) в итог компилируются лишь ехешники.. При установке вроде все норм, выбирается нужный. Быть может, проблема в том, что директория App и там, и там?
Devils Night
15-05-2012, 01:00
Флаги добавь Flags: recursesubdirs createallsubdirs
;recursesubdirs - Обрабатывать подкаталоги
;createallsubdirs - Создавать все подкаталоги
т.е:
[Files]
Source: Adobe Photoshop CS6 (x32)\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs; Check: not IsWin64
Source: Adobe Photoshop CS6 (x64)\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs; Check: IsWin64
91892823
15-05-2012, 01:27
Devils Night, спасибо! Задача выполнена. Спасибо всем, кто помог!
Вот скрипт полностью, вдруг кому-нибудь пригодится.
Автоустановка с определением битности системы
[Setup]
Uninstallable=false
CreateUninstallRegKey=false
UpdateUninstallLogAppName=false
AppName=PS
AppVersion=13.0
;AppVerName=PS 13.0
DefaultDirName={pf}\Ps
DisableDirPage=yes
DefaultGroupName=PS
DisableProgramGroupPage=yes
OutputDir=E:\ТемР\4556
OutputBaseFilename=setup
SetupIconFile=E:\44к.ico
Compression=lzma
SolidCompression=yes
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
Source: Adobe Photoshop CS6 (x32)\*; DestDir: {app}; Flags: recursesubdirs createallsubdirs ignoreversion; Check: not IsWin64
Source: Adobe Photoshop CS6 (x64)\*; DestDir: {app}; Flags: recursesubdirs createallsubdirs ignoreversion; Check: IsWin64
[Icons]
Name: {commondesktop}\Ps; Filename: {app}\PhotoshopCS6Portable.exe; WorkingDir: {app}; Check: not IsWin64
Name: {commondesktop}\Ps; Filename: {app}\Photoshopx64Portable.exe; WorkingDir: {app}; Check: IsWin64
[Code]
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result:=true;
end;
procedure WizardFormShow(Sender: TObject);
begin
WizardForm.NextButton.OnClick(nil);
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
Show;
OnShow := @WizardFormShow;
end;
end;
Ну начинается день золотой, шуруй сюда»
дело в том что тут ничего нужного нет там только как сжимать и чем !!!
А мне нужно что куда прописывать чтобы файлы извлекались из архива !!!
bugmenotagain
15-05-2012, 13:39
в чем проблема
http://i36.fastpic.ru/thumb/2012/0515/3b/cf9e8c81ea313c5a45fe7c29c8c7dd3b.jpeg (http://fastpic.ru/view/36/2012/0515/cf9e8c81ea313c5a45fe7c29c8c7dd3b.png.html)
[Files]
Source: "C:\Program Files\WinDjView\*"; DestDir: "{app}"; Flags: ignoreversion; Components: WinDjView
R.i.m.s.k.y.
15-05-2012, 13:45
bugmenotagain, либо не объявлена секция Components, либо в ней нет компонента WinDjView
R.i.m.s.k.y.
15-05-2012, 14:11
bugmenotagain,
1. попробуй добавить флаги createallsubdirs recursesubdirs
2. тут интереснее, Uninstallable задается только в секции Setup и компоненты к ней не применишь, как вариант удалять удалятор в конце и выносить секцию из реестра
bugmenotagain
15-05-2012, 14:50
1. попробуй добавить флаги createallsubdirs recursesubdirs »
сработало. но только почему то программа видна в "Установка и удаление программ" а так же видна в специальных программ- дистилляторов
она же portable. она должна копироваться как обычная папка с обычными файлами.
2. тут интереснее, Uninstallable задается только в секции Setup и компоненты к ней не применишь, как вариант удалять удалятор в конце и выносить секцию из реестра »
такое ощущение что вы не уверены.
и в меню пуск она суется. мда
R.i.m.s.k.y.
15-05-2012, 14:53
такое ощущение что вы не уверены. »
угадал! я бы сделал в шаге ssDone удаление ключа реестра из секции реестра "установка/удаление программ" и удаление удалятора
Но может кто-то более красивое решение подскажет
bugmenotagain
15-05-2012, 14:55
R.i.m.s.k.y., тогда такой вопрос. как заставить второй компонент (portable) копироваться в указанное место как обычный файл? без всякого реестра, меню пуск и прочее?
R.i.m.s.k.y.
15-05-2012, 14:58
bugmenotagain, прописать в секции Icons, Registry и прочие правильно и корректно нужным строчкам нужные Components, строчки без Components выполняются всегда
bugmenotagain
15-05-2012, 15:01
R.i.m.s.k.y., не подскажите примерно что прописывать?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.