Войти

Показать полную графическую версию : Скрипты 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

Temyraz@fb
28-04-2012, 12:46
ты наверное меня не понял.
у меня чекбокс А обновляет систему, а чекбокс В устанавливает на чистую систему. поэтому при варианте А не должна выдаваться сообщение о том что папка уже существует, а при варианте В должна

Johny777
28-04-2012, 13:21
Temyraz@fb,
ты пример смотрел?
там только при Б
где ты запрос при А увидел?
При А вообще никаких проверок
пред тем как выложить пример я его проверил.

(добавил комментарии примеру сверху)

Temyraz@fb
28-04-2012, 13:23
да менял, тоже самое получается.

извини, больше не буду

alert30
28-04-2012, 13:29
detiedyatosla
склепать скрипт что бы в нём было расширенное окно инстолятора »
Использовать расширенный компилятор Inno Setup.
[hr]
фоновая картинка на всех страницах инсталяции »
[Setup]
WindowVisible=yes
;и по желанию
WindowResizable=no

[Files]
Source: "C:\My_Image.bmp"; DestDir: "{tmp}"; Flags: dontcopy

[_Code]
procedure InitializeWizard();
begin
ExtractTemporaryFile('My_Image.bmp'); //My_Image.bmp - указываемое изображение в секции [Files]

with TBitmapImage.Create(MainForm) do
begin
Parent := MainForm;
Align := alClient;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\My_Image.bmp'));
Stretch:=True;
end;
end;

Devils Night
28-04-2012, 13:33
YURSHAT, Да это просто был интерес, а так ничего полезного, только лишний мусор рядом в папке.
Да просто беда в том, что он не ужимается до 2.1 гигов. »
Погоди, тебе что нужно?:
1. Ужать допустим 4 гига в 2.1 гб?
2. Распределить файлы так чтобы они не важно какое количество рапределялось по 2.1 гб, так?
3. Сделать инсталятор в 4 гига?

И так:
По первому, это вряд ли, потому как есть файлы которые вообще никак не ужимаются, даже если ты будешь использовать супер-мега-ультра-64 компрессию. Можешь конечно ещё попробовать фриарк или прекомп, но и то вряд ли.

По второму, это тебе самому нужно тестировать и расчитывать. Я тоже пытался распределить, так чтобы было ровно по 2 гига, но сжатие сделало своё дело и всё сжалось не так как хотел, и архивы стали на много меньше чем расчитывал, по этому тебе придётся сжать все свои файлы и смотреть где степень сжатия 0 кб, и вот как раз эти файлы распределить таким образом, чтобы было как максимум приблизительно к тому размеру какой хочешь.

По третьему, инно этого не умеет, может только рядом создать файл типа setup-1.bin.

Мне еще интересно - почему в нсисе можно до 4х гигов делать инсталлятор - а в инно нет? »Да инно много чего не умеет, например ещё добавлять запрещённые ветки реестра, или добавлять службы без последствий, хотя InstalShield без проблем с этим справляется.
А вообще, а вообще, эта тема не предназначена для обсуждения различного степени сжатия файлов, по этому пройди сюда (http://forum.ru-board.com/topic.cgi?forum=5&topic=30239&start=0) или сюда (http://krinkels.org/showthread.php?t=22).
Эта тема предназначена только для обсуждения написания скриптов!

Johny777
28-04-2012, 13:47
а так ничего полезного »
не скажи
взять мой скрипт
при запуске извлекаются 70 метров картинок
вот так
ExtractTemporaryFile('My_Image.bmp');
а потом грузятся
так
LoadFromFile(ExpandConstant('{tmp}\My_Image.bmp'));
А если рядом лежат (да лучше когда рядом их нет), то просто можно грузить без извлечения
Это должно повысить скорость запуска.
(хотя я не собираюсь этого делать, но + ещё в том, что даже после компиляции ты можешь в какой-то мере менять внешность инсталла)
использовать супер-мега-ультра-64 компрессию. Можешь конечно ещё попробовать фриарк или прекомп, но и от вряд ли »
покруче всего этого будет NanoZip. Он очень сильно жмёт. Не намного хуже связки прекомп+фриарк
тут внизу тест
http://freearc.org/HFCB.aspx

Bolshaya_Dzhigurda@fb
28-04-2012, 17:00
Здравствуйте! Проблема с удалением. При удалении ошибка Internal error: Cannot find utCompiledCode record for this version of the uninstaller

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Medal of Honor"
#define MyAppVersion "592256"
#define MyAppPublisher "EA"
#define MyAppExeName "moh.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
DiskSpanning=true
DiskSliceSize=1457664000
AppId={{F5BCF2BF-4EC2-4ECF-9C70-F1582F2AB889}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=D:\Установщики
OutputBaseFilename=setup
SetupIconFile=C:\Documents and Settings\Neo\Рабочий стол\00000.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: task1; Description: Установка дополнительного программного обеспечения;
Name: task1\task2; Description: Punk Buster; Flags: unchecked

[Files]
Source: "D:\Games\Medal Of Honor\Binaries\moh.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Games\Medal Of Honor\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Проверить наличие обновлений"; Filename: "{app}\MP\mohmpupdater.exe"
Name: "{group}\Medal of Honor Multiplayer"; Filename: "{app}\MP\MoHMPGame.exe"
Name: "{group}\Medal of Honor"; Filename: "{app}\Binaries\moh.exe"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Medal of Honor Multiplayer"; Filename: "{app}\MP\MoHMPGame.exe"; Tasks: desktopicon
Name: "{commondesktop}\Medal of Honor"; Filename: "{app}\Binaries\moh.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
Filename: {app}\Support\PunkBuster\pbsvc_moh.exe; WorkingDir: {app}; StatusMsg: Установка PunkBuster; Flags: waituntilterminated; Tasks: task1\task2

[Registry]
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: DisplayName; ValueData: "Medal of Honor (TM)"; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: "CD Drive"; ValueData: ""; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: ProductName; ValueData: """Medal of Honor (TM)"""; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: Folder; ValueData: ""; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: "Install Dir"; ValueData: {app}; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: "Installed From"; ValueData: ""; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: Locale; ValueData: "ru"; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: Language; ValueData: "Russian"; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: "Product GUID"; ValueData: "415030B8-3E8B-462A-8C03-41D95AA3AB3B"; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: "Suppression Exe"; ValueData: ""; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor"; ValueName: Registration; ValueData: "Software\\Electronic Arts\\Electronic Arts\\Medal of Honor\\ergc"; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor\1.0"; ValueName: DisplayName; ValueData: "Medal of Honor"; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor\1.0"; ValueName: Language; ValueData: 00000010; ValueType: dword;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor\1.0"; ValueName: LanguageName; ValueData: "Russian"; ValueType: string;
Root: HKLM; SubKey: "SOFTWARE\Electronic Arts\Medal of Honor\1.0"; ValueName: ProgramGroup; ValueData: ""; ValueType: string;

detiedyatosla
28-04-2012, 17:03
помогите сделать скрипт с увеличиным окном инсталятора и фоновой картинкой на всех страницах

alert30
28-04-2012, 18:03
Bolshaya_Dzhigurda@fb, попробуй генерировать ID приложения.
[hr]
detiedyatosla, я уже написАл: пост #1705 (http://forum.oszone.net/post-1907273-1705.html). Сколько можно повторять, за столькие же вопросы?

detiedyatosla
28-04-2012, 18:12
alert30,
это совсем не то

alert30
28-04-2012, 18:26
detiedyatosla, другой скрипт для фона, только требуется библиотеку isxbb.dll:
[Setup]
WindowVisible=yes
WindowResizable=no
WindowShowCaption=no

[Files]
Source: C:\isxbb.dll; DestDir: {tmp}; Flags: dontcopy
Source: C:\1.jpg; DestDir: {tmp}; Flags: dontcopy

[_Code]
const
BACKGROUND=6;

function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';

function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';

procedure InitializeWizard();
begin
ExtractTemporaryFile('1.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\1.jpg',BACKGROUND);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
end;

detiedyatosla
28-04-2012, 18:54
alert30, нужно растянуть инсталятор и в него вставить картинку на все страницы

alert30
28-04-2012, 19:05
detiedyatosla, а Вы хоть пробовали?

detiedyatosla
28-04-2012, 19:09
alert30, да там с кнопками проблема
они по середине инстала

alert30
28-04-2012, 19:11
detiedyatosla, покажите скриншоты.

detiedyatosla
28-04-2012, 19:18
alert30, это мой друг делал есть ссылка
http://forum.oszone.net/attachment.php?attachmentid=81476&d=1335180407

alert30
28-04-2012, 19:21
detiedyatosla, где то этот скрипт я видел (еще и сделал мои RePack-и)...
...что в инсталяторе, хоть и растяженном. Попробуй отыскать.

detiedyatosla
28-04-2012, 19:23
alert30, а где конкретно искать ?

alert30
28-04-2012, 19:26
detiedyatosla, почитай в архиве скрипта (в шапке ссылка). Я бы рад скинуть скрипт, но как-бы то ни было придется долго искать.

detiedyatosla
28-04-2012, 19:38
alert30, всёравно не работает
помоги соеденить мож я что то не так делаю




© OSzone.net 2001-2012