PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 4]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 [99] 100 101 102 103 104 105

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;

MeХanik
15-05-2012, 13:25
Ну начинается день золотой, шуруй сюда»
дело в том что тут ничего нужного нет там только как сжимать и чем !!!
А мне нужно что куда прописывать чтобы файлы извлекались из архива !!!

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