PDA

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


Страниц : 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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

svensoft
05-02-2010, 22:16
Подскажите пожалуйста, как вот в этом коде можно поставить условие ?

procedure ButtonLabelClick(Sender: TObject);
var
Button: TButton;
begin

//вот здесь как поставить условие, что данную музыку проиграть если нажата кнопка bidNext
mciSendString('stop '+ExpandConstant('{tmp}\sound_Button1.wav'), 'NULL', 0, 0);
mciSendString('play '+ExpandConstant('{tmp}\sound_Button1.wav'), 'NULL', 0, 0);
//конец если

ButtonImage[TLabel(Sender).Tag].Left:=0
case TLabel(Sender).Tag of
bidBack: Button:=WizardForm.BackButton
bidNext: Button:=WizardForm.NextButton
bidCancel: Button:=WizardForm.CancelButton
bidDirBrowse: Button:=WizardForm.DirBrowseButton
bidGroupBrowse: Button:=WizardForm.GroupBrowseButton
else
Exit
end
Button.OnClick(Button)
end;


Все, уже не надо , уже сделал..))

YURSHAT
06-02-2010, 05:46
YURSHAT, скажи пожалуйста какой параметр нужно указать при загрузке скина, чтобы рамка скина была снаружи ?.. »

У тебя WizardForm.Width:=ScaleX(790);
WizardForm.Height:=ScaleY(533); а правильно так

WizardForm.ClientWidth:=ScaleX(790);
WizardForm.ClientHeight:=ScaleY(533);

serg aka lain
06-02-2010, 05:56
А можно ли как-то сделать чтоб на этом фоне тоже появлялась маленькая картинка? »
Можно, надо воспользоваться CreateCustomForm, и на эту форму загрузить "маленькую картинку".

МИШАНЧИК
06-02-2010, 05:59
serg aka lain, спасибо!
Не могли бы Вы пример набросать? Пожалуйста.

serg aka lain
06-02-2010, 06:12
Не могли бы Вы пример набросать? »


[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=.

[Files]
Source: compiler:WizModernSmallImage.bmp; Flags: dontcopy;

[Code]
var
DirectX: TCheckBox;

procedure InitializeWizard();
begin
DirectX := TCheckBox.Create(WizardForm);
with DirectX do
begin
Top := WizardForm.InnerNotebook.Height div 2;
Width := ScaleX(150);
Caption := 'Установить DirectX';
Parent := WizardForm.SelectDirPage;
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
//ResultCode: Integer;
MyForm: TSetupForm;
MyPanel: TPanel;
begin
if CurStep = ssPostInstall then
begin
if DirectX.Checked then
begin
MyForm := CreateCustomForm();
ExtractTemporaryFile('WizModernSmallImage.bmp');
with MyForm do
begin
BorderStyle := bsNone;
ClientWidth := ScaleX(380);
ClientHeight := ScaleY(59);
Width := ClientWidth;
Height := ClientHeight;
Position := poScreenCenter;

MyPanel := TPanel.Create(MyForm);
with MyPanel do
begin
BorderStyle := bsNone;
Width := MyForm.Width;
Height := MyForm.Height;
Caption := 'Установка DirectX, пожалуйста ждите ...';
Alignment := taCenter;
Parent := MyForm;
end;

with TBitmapImage.Create(MyForm) do
begin
SetBounds(ScaleX(2), ScaleY(2), ScaleX(55), ScaleY(55));
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernSmallImage.bmp'));
Parent := MyPanel;
end;

Show();
//Exec(ExpandConstant('{src}\Redist\DirectX\DXSETUP.exe'), '/silent', ExpandConstant('{src}\Redist\DirectX'), SW_SHOW, ewWaitUntilTerminated, ResultCode);
MsgBox('Закрыть дополнительную форму', mbInformation, MB_OK);
Free();
end;
end;
end;
end;

yamaha
06-02-2010, 12:14
Как сделать чтобы все данные при установке игры с оригинала внесённый в реестр при установки через inno тоже так внеслись?

user_123
06-02-2010, 13:15
Как сделать чтобы все данные при установке игры с оригинала внесённый в реестр при установки через inno тоже так внеслись? »
Узнать, какие записи в реестр вносит инсталлятор игры, можно сделав "снимок" реестра до и после установки, для этого есть спец. программы.
Смотрите также в справке Inno про секцию [registry].

Tukash
06-02-2010, 18:05
всем привет, кому не жалко поделитесь ПОДРОБНЫМ примером того, как сделать что-бы доп ПО устанавливалось после распаковки Фриакр архивов!!

Sotonisto
06-02-2010, 18:43
Наро, как внести изменения в ini файл после установки игры?
У меня есть скрипт, но он создает ini файл и вписует в нем строку, но это подходило раньше, сейчас же у меня
вот такоее:
[Emulator]
CacheEnabled = False
Language = Russian
Logging=False
SteamDll=bin\steam\Steam.dll
SteamClient = True
SteamUser = L4D2

[steamclient]
PlayerName = Имя
Logging=False
ClientDll=bin\steam\steamclient.dll
Мне необходимо заменить только Имя.
Как это реализовать?

yamaha
06-02-2010, 18:55
Написано если не указывать папку то будет по умолчанию в Мои рисунки, как только не пробовал и с С и без указывать путь всё равно просто чёрный фон.Как указать правильно?
RegWriteStringValue(HKCU, 'Software\Serbis\SBSlideShow', 'fold', ExpandConstant('{src} \..\Slides')) else

Как поменять размер слайда?Поставить какой хочешь.
ShowWindow(BackgroundForm.Handle, sw_Show)

Tukash
06-02-2010, 20:17
кто-нибудь подскажет параметр для ярлыка задающий совместимость? например Win 98?

МИШАНЧИК
06-02-2010, 22:10
serg aka lain, большое спасибо! Здорово!
Caption := 'Установка DirectX, пожалуйста ждите ...';
Alignment := taCenter;
taCenter я так понимаю задаёт расположение надписи по центру, а можно ли как-то задать расположение со сдвигом вправо(или влево)?

serg aka lain
06-02-2010, 23:59
taCenter я так понимаю задаёт расположение надписи по центру, а можно ли как-то задать расположение со сдвигом вправо(или влево)? »
TAlignment = (taLeftJustify, taRightJustify, taCenter);

svensoft
07-02-2010, 00:32
Люди, такая ситуация, есть объект с идентификатором Panel_ProgrammGroup. Вопрос, как можно в какой-то либо функции или процедуре проверить этот объект на видимость, с учетем того что конечно же объект объявлен в глобальных переменных ?..

то есть нужно в какой-либо процедуре сделать условие на видимость этого объекта, что-то вроде :
if Panel_ProgrammGroup.Active = 1 then
или
if Panel_ProgrammGroup: Active : = True then
и это конечно все неправильно, подскажите если кто-то знает ... ))

МИШАНЧИК
07-02-2010, 13:39
serg aka lain, большое спасибо!

Deen
07-02-2010, 14:26
Как сделать чтобы при установке игры второй раз появлялось окно "удалить игру" но или что то подобное?

Подскажите где посматреть мануал на создание установщика с архивами FreeArc.

YURSHAT
07-02-2010, 22:06
Как сделать чтобы при установке игры второй раз появлялось окно "удалить игру" но или что то подобное? »

Как то так [Setup]
AppName=Need for Speed™ Undercover
AppVerName=Need for Speed™ Undercover
DefaultDirName={pf}\Need for Speed™ Undercover
DefaultGroupName=Need for Speed™ Undercover
AllowNoIcons=yes

[Code_]

function InitializeSetup(): Boolean;
var
ResultCode: Integer;
ResultStr:string;
begin
Result:=True;
begin
If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Need for Speed™ Undercover_is1', 'UninstallString', ResultStr)
then
begin
If ResultStr<>''
then
begin
ResultStr:=RemoveQuotes(ResultStr);
if MsgBox('Игра Need for Speed™ Undercover уже установлена.' #13#13 'Вы хотите удалить существующую копию перед продолжением?', mbConfirmation, MB_YESNO) = idYes
then
if not Exec(ResultStr, '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
then
MsgBox('Ошибка удаления.' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Вероятно, деинсталлятор был перемещен, удален или переименован.', mbError, MB_OK);
end;
end;
end;
end;

Deen
07-02-2010, 23:05
YURSHAT,
Ничего нипишут как было так и осталось.

Может что я нето делаю, вот посмотри
[Setup]
DiskSpanning=true
DiskSliceSize=1457664000
AppId={{28E95C95-2094-4AAC-8D93-F5ACDB724359}
AppName=GTS
AppVerName=GTS 1.0
AppPublisher=DCore
DefaultDirName={pf}\GTS
DefaultGroupName=GTS
AllowNoIcons=yes
OutputDir=E:\Инсталяторы
OutputBaseFilename=setup
SetupIconFile=E:\Инсталяторы\icon.ico
Compression=lzma/ultra64
SolidCompression=true
InternalCompressLevel=ultra64

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

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: dxinstall; Description: Установить DirectX; Flags: unchecked
Name: C; Description: Установить С++ 2005 redistributable; Flags: unchecked

[Files]
Source: D:\Games\GTS\bin\win_x86\game.exe; DestDir: {app}\bin\win_x86\; Flags: ignoreversion
Source: D:\Games\GTS\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: {group}\GTS; Filename: {app}\bin\win_x86\game.exe; WorkingDir: {app}\bin\win_x86
Name: {group}\{cm:UninstallProgram,GTS}; Filename: {app}\bin\win_x86\game.exe; WorkingDir: {app}\bin\win_x86; IconIndex: 0
Name: {commondesktop}\GTS; Filename: {app}\bin\win_x86\game.exe; Tasks: desktopicon; WorkingDir: {app}\bin\win_x86; IconIndex: 0
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\GTS; Filename: {app}\bin\win_x86\game.exe; Tasks: quicklaunchicon; WorkingDir: {app}\bin\win_x86; IconIndex: 0

[Run]
Filename: {app}\bin\win_x86\game.exe; Description: {cm:LaunchProgram,GTS}; Flags: nowait postinstall skipifsilent
Filename: {src}\Redist\DXSETUP.exe; Parameters: /silent; Tasks: dxinstall
Filename: {src}\Redist\vcredist_x86.exe; Parameters: /q; Tasks: C

[Code_]
function InitializeSetup(): Boolean;
var
ResultCode: Integer;
ResultStr:string;
begin
Result:=True;
begin
If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Need for Speed™ Undercover_is1', 'UninstallString', ResultStr)
then
begin
If ResultStr<>''
then
begin
ResultStr:=RemoveQuotes(ResultStr);
if MsgBox('Игра Need for Speed™ Undercover уже установлена.' #13#13 'Вы хотите удалить существующую копию перед продолжением?', mbConfirmation, MB_YESNO) = idYes
then
if not Exec(ResultStr, '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
then
MsgBox('Ошибка удаления.' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Вероятно, деинсталлятор был перемещен, удален или переименован.', mbError, MB_OK);
end;
end;
end;
end;


Подскажите где посматреть мануал на создание установщика с архивами FreeArc.

YURSHAT
08-02-2010, 01:51
Может что я нето делаю, вот посмотри »

Правильно #define MyAppName "GTS"
//укажите название игры

[Setup]
AppName={#MyAppName}
AppVerName=GTS 1.0
AppPublisher=DCore
DefaultDirName={pf}\GTS
DefaultGroupName=GTS
AllowNoIcons=yes
;OutputDir=E:\Инсталяторы
OutputBaseFilename=setup
;SetupIconFile=E:\Инсталяторы\icon.ico
Compression=lzma/ultra64
SolidCompression=true
InternalCompressLevel=ultra64
DiskSpanning=true
DiskSliceSize=1457664000

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

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: dxinstall; Description: Установить DirectX; Flags: unchecked
Name: C; Description: Установить С++ 2005 redistributable; Flags: unchecked

[Files]
;Source: D:\Games\GTS\bin\win_x86\game.exe; DestDir: {app}\bin\win_x86\; Flags: ignoreversion
;Source: D:\Games\GTS\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: {group}\GTS; Filename: {app}\bin\win_x86\game.exe; WorkingDir: {app}\bin\win_x86
Name: {group}\{cm:UninstallProgram,GTS}; Filename: {app}\bin\win_x86\game.exe; WorkingDir: {app}\bin\win_x86; IconIndex: 0
Name: {commondesktop}\GTS; Filename: {app}\bin\win_x86\game.exe; Tasks: desktopicon; WorkingDir: {app}\bin\win_x86; IconIndex: 0
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\GTS; Filename: {app}\bin\win_x86\game.exe; Tasks: quicklaunchicon; WorkingDir: {app}\bin\win_x86; IconIndex: 0

[Run]
Filename: {app}\bin\win_x86\game.exe; Description: {cm:LaunchProgram,GTS}; Flags: nowait postinstall skipifsilent
Filename: {src}\Redist\DXSETUP.exe; Parameters: /silent; Tasks: dxinstall
Filename: {src}\Redist\vcredist_x86.exe; Parameters: /q; Tasks: C

[Code_]

function InitializeSetup(): Boolean;
var
ResultCode: Integer;
ResultStr:string;
begin
Result:=True;
begin
If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1', 'UninstallString', ResultStr)
then
begin
If ResultStr<>''
then
begin
ResultStr:=RemoveQuotes(ResultStr);
if MsgBox('Игра {#MyAppName} уже установлена.' #13#13 'Вы хотите удалить существующую копию перед продолжением?', mbConfirmation, MB_YESNO) = idYes
then
if not Exec(ResultStr, '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
then
MsgBox('Ошибка удаления.' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Вероятно, деинсталлятор был перемещен, удален или переименован.', mbError, MB_OK);
end;
end;
end;
end;

Подскажите где посматреть мануал на создание установщика с архивами FreeArc. »

В шапке есть скрипт для распаковки FreeArc, в нем все расписано. Ссыль (http://www.forum.oszone.ru/post-1300871-729.html)

Deen
08-02-2010, 04:33
YURSHAT,
Сразу же ошибка в первой строчке.

Про freearc: Я хотел мануал с самых азов.
Во первых: как делить архив фриарк на части? У меня установленная игра размером 12Гб мне архивировать сразу всю папку в один архив или где есть в настройках (сам ненашол) разделить на части 5-6 частей или вообще сколько нужно?

Второе: Сделал я например 6 архивов в скрипте написано "поместите архивы в одну папку с инсталятором" тоесть туда же где игра или в папку назначения и исталятора в установленной игре нет. unarc.dll где должен быть? рядом с архивами или вообще в папке с IS? Тот же вопрос про InnoCallback.dll

Пока что всё, жду ответов.




© OSzone.net 2001-2012