Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
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, скажи пожалуйста какой параметр нужно указать при загрузке скина, чтобы рамка скина была снаружи ?.. »
У тебя 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;
Как сделать чтобы все данные при установке игры с оригинала внесённый в реестр при установки через inno тоже так внеслись?
user_123
06-02-2010, 13:15
Как сделать чтобы все данные при установке игры с оригинала внесённый в реестр при установки через inno тоже так внеслись? »
Узнать, какие записи в реестр вносит инсталлятор игры, можно сделав "снимок" реестра до и после установки, для этого есть спец. программы.
Смотрите также в справке Inno про секцию [registry].
всем привет, кому не жалко поделитесь ПОДРОБНЫМ примером того, как сделать что-бы доп ПО устанавливалось после распаковки Фриакр архивов!!
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
Мне необходимо заменить только Имя.
Как это реализовать?
Написано если не указывать папку то будет по умолчанию в Мои рисунки, как только не пробовал и с С и без указывать путь всё равно просто чёрный фон.Как указать правильно?
RegWriteStringValue(HKCU, 'Software\Serbis\SBSlideShow', 'fold', ExpandConstant('{src} \..\Slides')) else
Как поменять размер слайда?Поставить какой хочешь.
ShowWindow(BackgroundForm.Handle, sw_Show)
кто-нибудь подскажет параметр для ярлыка задающий совместимость? например 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, большое спасибо!
Как сделать чтобы при установке игры второй раз появлялось окно "удалить игру" но или что то подобное?
Подскажите где посматреть мануал на создание установщика с архивами FreeArc.
Как сделать чтобы при установке игры второй раз появлялось окно "удалить игру" но или что то подобное? »
Как то так [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;
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.
Может что я нето делаю, вот посмотри »
Правильно #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)
YURSHAT,
Сразу же ошибка в первой строчке.
Про freearc: Я хотел мануал с самых азов.
Во первых: как делить архив фриарк на части? У меня установленная игра размером 12Гб мне архивировать сразу всю папку в один архив или где есть в настройках (сам ненашол) разделить на части 5-6 частей или вообще сколько нужно?
Второе: Сделал я например 6 архивов в скрипте написано "поместите архивы в одну папку с инсталятором" тоесть туда же где игра или в папку назначения и исталятора в установленной игре нет. unarc.dll где должен быть? рядом с архивами или вообще в папке с IS? Тот же вопрос про InnoCallback.dll
Пока что всё, жду ответов.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC