Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Sotonisto
23-01-2010, 20:19
CrOsP, спасиб - помогло :)
подскажите почему может не подхватывать стиль?
[Files]
Source: ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: steam.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Windows 7 x64
версия Inno 5.3.7 (u) »
Это просто даже для такого как я :)
[Files]
Source: "D:\Programs\ISSkin\ISSkin.dll"; DestDir: {app}; Flags: dontcopy
Source: "D:\My Skin\steam.cjstyles"; DestDir: {tmp}; Flags: dontcopy
[Code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('steam.cjstyles');
LoadSkin(ExpandConstant('{tmp}\steam.cjstyles'), '');
Result := True;
end;
procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
end;
подскажите почему может »
Ошибка в 15 строке, неверный параметр... скрипт покажите или те строки, как вы экспортируете и загружаете скин.
Не хватает в Converter 0.1.3 пакетной обработки »
Я думаю это не критично и считаю не проблемой объединить два рег-файла в один в ручную, это не утилита для объединения рег-файлов, а конвертирование reg в iss.
Jerichoman
23-01-2010, 20:58
Скажите, пожалуйста, если precomp для лучшего сжатия файлов, то почему будут файлы не .ff af_caves.pcf он будет весит больше значит он разжал этот файл или потом во FreeArc эти файлы лучше сожмутся?
Пожалуйста подскажите в этом коде,мне надо чтобы текст в документе который сделается в некоторых местах переходил на новую строку
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:My Program.
[UninstallDelete]
Type: files; Name: "{app}\autoexec.cfg";
[code]
var
Page: TInputQueryWizardPage;
procedure InitializeWizard();
begin
Page := CreateInputQueryPage(wpWelcome, 'Текст_1', 'Текст_2', 'Введите ник для сетевой игры');
Page.Add('', False);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
SaveStringToFile(ExpandConstant('{app}\autoexec.cfg'), 'name ' + '"' + Page.Values[0] + '"' + #13#10, False);
end;
Habetdin
23-01-2010, 21:05
REXE, перенос строки - это
#13#10 »
Sotonisto
23-01-2010, 21:49
Люди, кто может дать скрипт вот такого инсталла
http://s003.radikal.ru/i204/1001/45/da7b82524233t.jpg (http://radikal.ru/F/s003.radikal.ru/i204/1001/45/da7b82524233.jpg.html)
Скажите, пожалуйста, если precomp для лучшего сжатия файлов, то почему
Цитата:
будут файлы не .ff af_caves.pcf он будет весит больше значит он разжал этот файл
или потом во FreeArc эти файлы лучше сожмутся? »
да, сначала он как-бы "распаковывает" файл, а потом фриарком запаковываешь и получаеться меньший размер!
Sotonisto
прилепил что просил!
-------------------------------------------------------------------------------------
буду благодарен, если кто-то вытащит из этого скрипта, растягивание картинки на весь экран и на всех страницах, а так-же размер окна инсталлятора, а то скрипт слишком огромный, я пробовал но запутывался.
-------------------------------------------------------------------------------------
Sotonisto,
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Code]
var
lbl1, lbl2, lbl3, lbl4, lbl5: TLabel;
procedure initializeWizard();
begin
WizardForm.PageDescriptionLabel.Hide;
// создаём Label'ы, на который вешаем ссылку
lbl1:= TLabel.Create(WizardForm);
with lbl1 do
begin
AutoSize:= False;
SetBounds(20, 40, 50, 13);
Caption:= '|';
Transparent:= True;
Parent:= WizardForm.MainPanel;
end;
lbl2:= TLabel.Create(WizardForm);
with lbl2 do
begin
AutoSize:= False;
SetBounds(50, 40, 50, 13);
Caption:= 'lbl2';
Transparent:= True;
Parent:= WizardForm.MainPanel;
end;
lbl3:= TLabel.Create(WizardForm);
with lbl3 do
begin
AutoSize:= False;
SetBounds(100, 40, 50, 13);
Caption:= '|';
Transparent:= True;
Parent:= WizardForm.MainPanel;
end;
lbl4:= TLabel.Create(WizardForm);
with lbl4 do
begin
AutoSize:= False;
SetBounds(130, 40, 50, 13);
Caption:= 'lbl4';
Transparent:= True;
Parent:= WizardForm.MainPanel;
end;
lbl5:= TLabel.Create(WizardForm);
with lbl5 do
begin
AutoSize:= False;
SetBounds(180, 40, 50, 13);
Caption:= '|';
Transparent:= True;
Parent:= WizardForm.MainPanel;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectDir then
begin
lbl1.Font.Color:= clBlack;
lbl1.Font.Style:= [fsBold];
lbl2.Font.Color:= clBlack;
lbl2.Font.Style:= [fsBold];
lbl3.Font.Color:= clBlack;
lbl3.Font.Style:= [fsBold];
lbl4.Font.Color:= clGray;
lbl4.Font.Style:= [];
lbl5.Font.Color:= clGray;
lbl5.Font.Style:= [];
end;
if CurPageID = wpReady then
begin
lbl1.Font.Color:= clGray;
lbl1.Font.Style:= [];
lbl2.Font.Color:= clGray;
lbl2.Font.Style:= [];
lbl3.Font.Color:= clBlack;
lbl3.Font.Style:= [fsBold];
lbl4.Font.Color:= clBlack;
lbl4.Font.Style:= [fsBold];
lbl5.Font.Color:= clBlack;
lbl5.Font.Style:= [fsBold];
end;
end;
Sotonisto
24-01-2010, 08:30
Sotonisto
прилепил что просил!»
Народ, не бы хотелось как нить к кнопкам выбора языка (от инсталла NFS) прикрепить распаковку озвучки :)
Ну кароч если выбрали Русскую озвучку для видео - в папку скопировался и распаковывался 7z SFX архив, а если выбирали английскую - просто шла установка без распаковки.
Но там с этими кнопками я мозк сломаю :) Сейчас они у меня "для прикола" - ничего не происходит если выбрать одну из них, а хотелось бы что бы работало :(
http://s48.radikal.ru/i120/1001/54/eaa01765c53ft.jpg (http://radikal.ru/F/s48.radikal.ru/i120/1001/54/eaa01765c53f.jpg.html)
Jerichoman
24-01-2010, 10:28
Tukash,
И еще вопрос :) Это можно только каждый файл так или можно как-то всю папку целиком? И какие файлы лучше всего precomp'ить?
Sotonisto
[Types]
Name: custom; Description: Выборочная установка; Flags: iscustom
[Components]
Name: lng; Description: Выбор Озвучки; Flags: fixed; Types: custom
Name: lng/ru; Description: Русская; Flags: exclusive
Name: lng/en; Description: English; Flags: exclusive
[Files]
Source: C:\ENG\*; DestDir: {app}\audio\speech; Components: lng/en; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs
Source: C:\Rus\*; DestDir: {app}\audio\speech; Components: lng/ru; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs
Jerichoman
как всю папку прекомпом жать я пока не знаю, а сжимать лучше игровые архивы, видео и звук бесполезно...
Sotonisto
24-01-2010, 11:21
Sotonisto
читать дальше » »
Это для стандартного инсталла подходит, но тут нельзя создать еще одну страницу :(
Цитата Tukash:Sotonisto
читать дальше » »
Это для стандартного инсталла подходит, но тут нельзя создать еще одну страницу
хмм, но ведь можно этот скрипт прелепить к твоим текстурам, и получиться то что ты хочешь, только как, я не знаю)))
Sotonisto
24-01-2010, 11:32
хмм, но ведь можно этот скрипт прелепить к твоим текстурам, и получиться то что ты хочешь, только как, я не знаю))) »
во во :) и я о том же :)
P.S.: у меня и так был такой скрипт :)
svensoft
24-01-2010, 13:59
люди шарящие, ну помогите разобраться !!! Сценарий следующий : при открытии инсталлятора делается эмуляция отключения страниц приветствия "Welcome", выбора пути установки , вообщем сразу перепрыгиваем на страницу "Ready". Очень хочется включить на этой странице эффект ввода текста "печатной машинки". Есть алгоритм того-же действия, но на странице "Welcome". Всвязи с этим вопрос, какие парамметры надо вставить в код вместо : WelcomeLabel1, WelcomeLabel2, WelcomePage, так как действие происходит на странице "Ready" - надписи "Все готово к установке", "Программа установки готова начать установку ХХХ на ваш компьютер", "нажмите установить чтобы продолжить", пробовал заменить ReadyLabel1,ReadyLabel2, ReadyPage - ругается ?...
Вот код :
svensoft
24-01-2010, 14:09
люди шарящие, ну помогите разобраться !!! Сценарий следующий : при открытии инсталлятора делается эмуляция отключения страниц приветствия "Welcome", выбора пути установки , вообщем сразу перепрыгиваем на страницу "Ready". Очень хочется включить на этой странице эффект ввода текста "печатной машинки". Есть алгоритм того-же действия, но на странице "Welcome". Всвязи с этим вопрос, какие парамметры надо вставить в код вместо : WelcomeLabel1, WelcomeLabel2, WelcomePage, так как действие происходит на странице "Ready" - надписи "Все готово к установке", "Программа установки готова начать установку ХХХ на ваш компьютер", "нажмите установить чтобы продолжить", пробовал заменить ReadyLabel1,ReadyLabel2, ReadyPage - ругается ?... »
Извиняюсь, все уже сделал, уже не надо..
Но вот теперь другой вопрос появился на повестке дня, можно ли сделать так чтобы в инсталляторе с помощью bass.dll не только играла фоновая музыка (которая стартует при открытии и обрывается при завершения установки), а еще и при нажатие на педали проигрывались тоже мп3, не обрывая фоновую музыку ?.. Была такая мысль две bass.dl кидать в инсталлятор и потом для каждой прописать отдельный код (так как одна будет занята фоновой музыкой), но может как-то с помощью одной можно сделать ?..
при нажатие на педали проигрывались тоже мп3, »
При нажатии на педали вовсе не нужно использовать Bass , можно проигрывать музыку через винду.
function mciSendString(lpstrCommand, lpstrReturnString: PAnsiChar; uReturnLength: Cardinal; hWndCallback: HWND): Cardinal; external 'mciSendStringA@winmm.dll stdcall';
procedure нажатие на педаль;
begin
mciSendString('stop '+ExpandConstant('{tmp}\click.wav'), 'NULL', 0, 0);
mciSendString('play '+ExpandConstant('{tmp}\click.wav'), 'NULL', 0, 0);
end;
svensoft
24-01-2010, 15:08
При нажатии на педали вовсе не нужно использовать Bass , можно проигрывать музыку через винду. »
YURSHAT
О, и здесь ты рулишь !!! Спасибо еще раз, прямо сегодня праздник ты мне подарил в разбирание скриптов !!!..А вот если такой вариант : Играет уже фоновая музыка и при открытие страницы Ready надо включить озвучку "мой ля ля " (mp3), и как только пользователь жмет "Установить" мой ля ля обрывается, но фоновая музыка остается играть. Можно ли так сделать вообще ?..
================================
Где бы почитать синтаксис inno setup ?..
Можно ли так сделать вообще ?.. »
Легко. [Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:My Program.
[Files]
Source: "button.bmp"; Flags: dontcopy;
Source: "click.wav"; Flags: dontcopy;
Source: "sound.mp3"; Flags: dontcopy;
[Code_]
const
ButtonWidth = 80;
ButtonHeight = 23;
bidBack = 0;
bidNext = 1;
bidCancel = 2;
bidDirBrowse = 3;
bidGroupBrowse = 4;
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif
function mciSendString(lpstrCommand, lpstrReturnString: PAnsiChar; uReturnLength: Cardinal; hWndCallback: HWND): Cardinal;
external 'mciSendStringA@winmm.dll stdcall';
var
ButtonPanel: array [0..4] of TPanel;
ButtonImage: array [0..4] of TBitmapImage;
ButtonLabel: array [0..4] of TLabel;
procedure ButtonLabelClick(Sender: TObject);
var
Button: TButton;
begin
ButtonImage[TLabel(Sender).Tag].Left := 0;
mciSendString('stop '+ExpandConstant('{tmp}\click.wav'), 'NULL', 0, 0);
mciSendString('play '+ExpandConstant('{tmp}\click.wav'), 'NULL', 0, 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;
procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ButtonLabel[TLabel(Sender).Tag].Enabled then
ButtonImage[TLabel(Sender).Tag].Left := -ScaleX(ButtonWidth);
end;
procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ButtonImage[TLabel(Sender).Tag].Left := 0;
end;
procedure LoadButtonImage(AButton: TButton; AButtonIndex: integer);
var
Image: TBitmapImage;
Panel: TPanel;
Labl: TLabel;
begin
Panel := TPanel.Create(WizardForm);
Panel.Left := AButton.Left;
Panel.Top := AButton.Top;
Panel.Width := AButton.Width;
Panel.Height := AButton.Height;
Panel.Tag := AButtonIndex;
Panel.Parent := AButton.Parent;
ButtonPanel[AButtonIndex] := Panel;
Image := TBitmapImage.Create(WizardForm);
Image.Width := ScaleX(160);
Image.Height := ScaleY(23);
Image.Enabled := False;
Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp'));
Image.Stretch := True;
Image.Parent := Panel;
ButtonImage[AButtonIndex] := Image;
with TLabel.Create(WizardForm) do begin
Tag := AButtonIndex;
Parent := Panel;
Width := Panel.Width;
Height := Panel.Height;
Transparent := True;
OnClick := @ButtonLabelClick;
OnDblClick := @ButtonLabelClick;
OnMouseDown := @ButtonLabelMouseDown;
OnMouseUp := @ButtonLabelMouseUp;
end;
Labl := TLabel.Create(WizardForm);
Labl.Top := ScaleY(ButtonHeight) div 5;
Labl.Autosize := True;
Labl.Alignment := taCenter;
Labl.Tag := AButtonIndex;
Labl.Transparent := True;
Labl.Font.Color := clWhite;
Labl.Caption := AButton.Caption;
Labl.OnClick := @ButtonLabelClick;
Labl.OnDblClick := @ButtonLabelClick;
Labl.OnMouseDown := @ButtonLabelMouseDown;
Labl.OnMouseUp := @ButtonLabelMouseUp;
Labl.Parent := Panel;
ButtonLabel[AButtonIndex] := Labl;
end;
procedure UpdateButton(AButton: TButton;AButtonIndex: integer);
begin
ButtonLabel[AButtonIndex].Caption := AButton.Caption;
ButtonPanel[AButtonIndex].Visible := AButton.Visible;
ButtonLabel[AButtonIndex].Enabled := Abutton.Enabled;
end;
procedure LicenceAcceptedRadioOnClick(Sender: TObject);
begin
ButtonLabel[bidNext].Enabled := True;
end;
procedure LicenceNotAcceptedRadioOnClick(Sender: TObject);
begin
ButtonLabel[bidNext].Enabled := False;
end;
procedure InitializeWizard();
begin
ExtractTemporaryFile('button.bmp');
ExtractTemporaryFile('click.wav');
ExtractTemporaryFile('sound.mp3');
WizardForm.BackButton.Left := WizardForm.BackButton.Left - ScaleX(7);
WizardForm.BackButton.Width := ScaleX(ButtonWidth);
WizardForm.BackButton.Height := ScaleY(ButtonHeight);
WizardForm.NextButton.Width := ScaleX(ButtonWidth);
WizardForm.NextButton.Height := ScaleY(ButtonHeight);
WizardForm.CancelButton.Width := ScaleX(ButtonWidth);
WizardForm.CancelButton.Height := ScaleY(ButtonHeight);
WizardForm.DirBrowseButton.Left := ScaleX(337);
WizardForm.DirBrowseButton.Top := WizardForm.DirEdit.Top + WizardForm.DirEdit.Height div 2 - ScaleY(ButtonHeight) div 2;
WizardForm.DirBrowseButton.Width := ScaleX(ButtonWidth);
WizardForm.DirBrowseButton.Height := ScaleY(ButtonHeight);
WizardForm.GroupBrowseButton.Left := ScaleX(337);
WizardForm.GroupBrowseButton.Top := WizardForm.GroupEdit.Top + WizardForm.GroupEdit.Height div 2 - ScaleY(ButtonHeight) div 2;
WizardForm.GroupBrowseButton.Width := ScaleX(ButtonWidth);
WizardForm.GroupBrowseButton.Height := ScaleY(ButtonHeight);
WizardForm.LicenseAcceptedRadio.OnClick := @LicenceAcceptedRadioOnClick;
WizardForm.LicenseNotAcceptedRadio.OnClick := @LicenceNotAcceptedRadioOnClick;
LoadButtonImage(WizardForm.BackButton,bidBack);
LoadButtonImage(WizardForm.NextButton,bidNext);
LoadButtonImage(WizardForm.CancelButton,bidCancel);
LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse);
LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse);
end;
procedure CurPageChanged(CurPageID: Integer);
begin
UpdateButton(WizardForm.BackButton,bidBack);
UpdateButton(WizardForm.NextButton,bidNext);
UpdateButton(WizardForm.CancelButton,bidCancel);
ButtonLabel[bidBack].Left := ButtonPanel[bidBack].Width div 2 - ButtonLabel[bidBack].Width div 2;
ButtonLabel[bidNext].Left := ButtonPanel[bidNext].Width div 2 - ButtonLabel[bidNext].Width div 2;
ButtonLabel[bidCancel].Left := ButtonPanel[bidCancel].Width div 2 - ButtonLabel[bidCancel].Width div 2;
ButtonLabel[bidDirBrowse].Left := ButtonPanel[bidDirBrowse].Width div 2 - ButtonLabel[bidDirBrowse].Width div 2;
ButtonLabel[bidGroupBrowse].Left := ButtonPanel[bidGroupBrowse].Width div 2 - ButtonLabel[bidGroupBrowse].Width div 2;
if CurPageID = wpReady then
begin
mciSendString('play '+ExpandConstant('{tmp}\sound.mp3'), 'NULL', 0, 0);
end;
if CurPageID = wpInstalling then
begin
mciSendString('stop '+ExpandConstant('{tmp}\sound.mp3'), 'NULL', 0, 0);
end;
end;
svensoft
24-01-2010, 18:42
Легко. »
YURSHAT, Здорово !!! Большое, большое спасибо !!! Прямо слов нет, один восторг....))
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.