Войти

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


Страниц : 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 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

Vista-w
17-01-2011, 17:15
Лександер,
Вот это я и хотел узнать, вот как правильно прописать адрес архива?
Archives = '{src}\*.arc';
И еще что это ?
Source: arc.ini; DestDir: {tmp}; Flags: dontcopy
Архив нужно вносить в секцию [Files] ?

Gnom_aka_Lexander
17-01-2011, 17:17
Vista-w, Нет, не нужно :)
R.i.m.s.k.y., Глянь предидущий мой пост :)

R.i.m.s.k.y.
17-01-2011, 17:17
тогда может
HLPLabel := TLabel.Create(WizardForm)
if ( (not isHLPinstalled) and (isWin7) ) then begin
...
end;
т.е. лэбл создасться но пустой

Vista-w
17-01-2011, 17:21
Лександер,
Archives = '{src}\_______*.arc'; <адрес архива нужно вносить сюда да?

R.i.m.s.k.y.
17-01-2011, 17:25
Лександер,
оформление через код, через тернии к звездам, гланды через ...
я мало понимаю в оформлении_через_код, наобум советую, по вдохновению ;)

Gnom_aka_Lexander
17-01-2011, 17:25
Vista-w, Да. Правильно будет так: Archives = '{src}\*.arc' тогда будут обработаны все файлы с расширением .arc

R.i.m.s.k.y., Тут (http://forum.oszone.net/post-1590779-574.html) где выбран чекбокс? как-бы сделать, чтоб по умолчанию он не был выбран?HLPLabel := TLabel.Create(WizardForm)
if ( (not isHLPinstalled) and (isWin7) ) then begin »
Не катит, убирается только надпись, а чекбокс остается рабочим...

R.i.m.s.k.y.
17-01-2011, 17:32
Не катит, убирается только надпись, а чекбокс остается рабочим »
не знаю, тяму не хватает, может Serega или еще кто подмогнет...

Vista-w
17-01-2011, 17:32
Лександер,
Source: arc.ini; DestDir: {tmp}; Flags: dontcopy
это что за строка?

Gnom_aka_Lexander
17-01-2011, 17:34
Vista-w, arc.ini нужен для работы unarc.dll.

R.i.m.s.k.y., подожду, мож кто еще подскажет, там совсем тупик уже...
Попрорбовал так:
if not isHLPinstalled and isWin7 then
HLPLabel := TLabel.Create(WizardForm)
проглатывает, но на установке ошибка в следующих строках.

Vista-w
17-01-2011, 17:37
Лександер,
у меня его нет в архиве(

Gnom_aka_Lexander
17-01-2011, 17:39
Vista-w,
Он у тебя в файлах есть: Source: arc.ini; DestDir: {tmp}; Flags: dontcopy
А в архив его нельзя, он нужен для распаковки этих архивов.

Vista-w
17-01-2011, 17:58
Лександер,
Да не я архив скачал, этого файла там нет.

Gnom_aka_Lexander
17-01-2011, 18:02
Vista-w, Блиннн, его там и не должно быть, это файл настроек Архиватора ФриАрк. он должен быть указан в скрипте у тебя.

Vista-w
17-01-2011, 18:07
Лександер,
Ладно спасибо за помощь, но выберу что нить по проще.
Есть ли скрипт для распаковки 7z архива, но с отдельным прогресс-баром?

Gnom_aka_Lexander
17-01-2011, 18:15
Vista-w, Есть, тут в примерах в шапке видел.

Помгите кто-нибудь, тут:

function HLP: Boolean;
begin
ProgressInfoLabel.Visible:=False;
FilenameLabel.Hide;
Result:= BtnGetChecked(HLPCheck);
end;....
........
procedure HLPClick(hBtn:HWND);
begin
if BtnGetChecked(hBtn) then HLPLabel.Font.Color:=$00FFFF else HLPLabel.Font.Color:=$FFFFFF;
end;

procedure HLPLabelClick(Sender:TObject);
begin
BtnSetChecked(HLPCheck, not BtnGetChecked(HLPCheck));
HLPClick(HLPCheck);
end;

procedure HLPProgress;
begin
StatusLabel.Caption:=ExpandConstant('{cm:HLPInstall}')
end; .......
.......
HLPCheck:=BtnCreate(WizardForm.Handle,ScaleX(75),ScaleY(363),ScaleX(28),ScaleY(28),ExpandConstant('{ tmp}\CheckBox.png'),8,True);
BtnSetEvent(HLPCheck,BtnClickEventID,WrapBtnCallback(@HLPClick,1));
BtnSetCursor(HLPCheck,GetSysCursorHandle(32649));

HLPLabel := TLabel.Create(WizardForm);
with HLPLabel do begin
AutoSize:=False;
SetBounds(ScaleX(115), ScaleY(370), ScaleX(545), ScaleY(37));
OnClick:= @HLPLabelClick;
Cursor:= CrHand;
Transparent:=True;
Font.Name:= 'Georgia'
Font.Size:= 10;
Font.Color:=$00FFFF;
Font.Style:=[fsBold,fsItalic];
Caption := ExpandConstant('{cm:HLP}');
Parent := WizardForm;
end;

чекбокс выбран, я не могу нйти где, мне нужно, чтоб по умолчанию он не был вбран..

R.i.m.s.k.y.
17-01-2011, 19:11
Лександер,
А если этот HLP перенести в компоненты? не вариант, нет?

[Components]
# define HLPW7Desc "Установить обновление для Windows Se7en Программа Справка Windows для просмотра 32-разрядных файлов справки (.HLP)"
Name: HLPW7; Description: {#HLPW7Desc}; Types: full; Check: ( (not isHLPinstalled) and (isWin7))

[ C ode]
procedure InitializeWizard();
...
if ( (not isHLPinstalled) and (isWin7) ) then WizardForm.ComponentsList.Checked[WizardForm.ComponentsList.Items.IndexOf('{#HLPW7Desc}')]:=False;
...

[Run]
Components: HLPW7; Filename: {sys}\wusa.exe; WorkingDir: {tmp}; Parameters: {tmp}\KB917607-x86.msu /quiet /norestart; Check: (not IsWin64); Flags: waituntilterminated 32bit;
Components: HLPW7; Filename: {sys}\wusa.exe; WorkingDir: {tmp}; Parameters: {tmp}\KB917607-x64.msu /quiet /norestart; Check: (IsWin64); Flags: waituntilterminated 64bit;

Gnom_aka_Lexander
17-01-2011, 19:49
R.i.m.s.k.y., я проще разобрался, сейчас общий код выложу с коментариями, может кому пригодится, в общем, если HLP-пач ставить нужно, то показаны чекбокс, подпись, и чекбокс выбран, если HLP-пач ставить не нужно, то галка с чекбокса снимается, (иначе всеравно поставится:) ) скрывается чекбокс и подпись (они созданы раздельно).
Добавил скрипт во вложении, описанная опция прокоментирована.
Проверил у себя дважды - работает :)

Imitri7
17-01-2011, 20:26
нужна помощь, нужна типа такая => http://s002.youpic.su/pictures/1295200800/thumb_5dc5a8aec452374fbbf7858f2f382e11.png (http://youpic.su/view.php?id=s002.youpic.su/pictures/1295200800/5dc5a8aec452374fbbf7858f2f382e11.png) страница , но только чтоб не прописывать в компонентах, а какбэ отдельная страница

Imitri7
17-01-2011, 22:07
Лександер, ааааа...ботва2.длл :shot:
а вообще спасибо
зы думаю стоит добавить все материалы: картинки, стили и прочее...

SteamShip
18-01-2011, 20:01
Что нужно написать или поменять в этом скрипте чтобы при запуске инсталлятора музыка не играла а на панели были кнопки вкл музыку и стоп а кнопка пауза была скрыта

[Setup]
AppName=Example.Play.MP3.Music.On.Start.Up.With.Texture
AppVerName=Example.Play.MP3.Music.On.Start.Up.With.Texture
AppPublisher=genri.sampron.iTASmania_Inc.uncle
DefaultDirName=C:\Play.MP3
OutputBaseFilename=play.mp3.by.genri.sampron.iTASmania_Inc.uncle


[Files]
Source: BASS.dll; DestDir: {tmp}; Flags: dontcopy noencryption
Source: sound.mp3; DestDir: {tmp}; Flags: dontcopy noencryption nocompression
Source: MusicButton.bmp; DestDir: {tmp}; Flags: dontcopy


[Code]
const
BASS_ACTIVE_STOPPED = 0;
BASS_ACTIVE_PLAYING = 1;
BASS_ACTIVE_STALLED = 2;
BASS_ACTIVE_PAUSED = 3;
BASS_SAMPLE_LOOP = 4;

var
mp3Handle: HWND;
mp3Name: String;
PlayButton, PauseButton, StopButton: TPanel;
PlayImage, PauseImage, StopImage: TBitmapImage;
PlayLabel, PauseLabel, StopLabel: TLabel;
MouseLabel: Tlabel;

function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';

function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): DWORD;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';

function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';

function BASS_ChannelIsActive(handle: DWORD): Integer;
external 'BASS_ChannelIsActive@files:BASS.dll stdcall delayload';

function BASS_ChannelPause(handle: DWORD): Boolean;
external 'BASS_ChannelPause@files:BASS.dll stdcall delayload';

function BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';

function BASS_Pause(): Boolean;
external 'BASS_Pause@files:BASS.dll stdcall delayload';

function BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';

procedure PlayMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PlayImage.Left := -96
end;

procedure PlayMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PlayImage.Left := 0
end;

procedure PlayMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if PlayImage.Left <> -96 then PlayImage.Left := -192
StopImage.Left := -64
end;

procedure PauseMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PauseImage.Left := -128
end;

procedure PauseMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PauseImage.Left := -32
end;

procedure PauseMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if PauseImage.Left <> -128 then PauseImage.Left := -224
StopImage.Left := -64
end;

procedure StopMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StopImage.Left := -160
end;

procedure StopMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StopImage.Left := -64
end;

procedure StopMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if StopImage.Left <> -160 then StopImage.Left := -256
PlayImage.Left := 0
PauseImage.Left := -32
end;

procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
PlayImage.Left := 0
PauseImage.Left := -32
StopImage.Left := -64
end;

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('sound.mp3');
mp3Name := ExpandConstant('{tmp}\sound.mp3');
BASS_Init(-1, 44100, 0, 0, 0);
mp3Handle := BASS_StreamCreateFile(FALSE, PChar(mp3Name), 0, 0, BASS_SAMPLE_LOOP);
BASS_Start();
BASS_ChannelPlay(mp3Handle, False);
Result := True;
end;

procedure PlayButtonOnClick(Sender: TObject);
begin
case BASS_ChannelIsActive(mp3Handle) of
BASS_ACTIVE_PAUSED:
begin
BASS_ChannelPlay(mp3Handle, False);
PlayButton.Hide
PauseButton.Show
end;
BASS_ACTIVE_STOPPED:
begin
BASS_Init(-1, 44100, 0, 0, 0);
mp3Handle := BASS_StreamCreateFile(FALSE, PChar(mp3Name), 0, 0, BASS_SAMPLE_LOOP);
BASS_Start();
BASS_ChannelPlay(mp3Handle, False);
PlayButton.Hide
PauseButton.Show
end;
end;
end;

procedure PauseButtonOnClick(Sender: TObject);
begin
BASS_ChannelPause(mp3Handle);
PauseButton.Hide
PlayButton.Show
end;

procedure StopButtonOnClick(Sender: TObject);
begin
BASS_Stop();
BASS_Free();
PauseButton.Hide
PlayButton.Show
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('MusicButton.bmp')

MouseLabel := TLabel.Create(WizardForm)
MouseLabel.Width := WizardForm.Width
MouseLabel.Height := WizardForm.Height
MouseLabel.Autosize := False
MouseLabel.Transparent := True
MouseLabel.OnMouseMove := @MouseMove
MouseLabel.Parent := WizardForm

PlayButton := TPanel.Create(WizardForm)
PlayButton.Left := 50
PlayButton.Top := 320
PlayButton.Width := 32
PlayButton.Height := 33
PlayButton.Cursor := crHand
PlayButton.ShowHint := True
PlayButton.Hint := 'Воспроизведение музыки'
PlayButton.OnClick := @PlayButtonOnClick
PlayButton.Parent := WizardForm

PlayImage := TBitmapImage.Create(WizardForm)
PlayImage.Left := 0
PlayImage.Top := 0
PlayImage.Width := 288
PlayImage.Height := 33
PlayImage.Enabled := False
PlayImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MusicButton.bmp'))
PlayImage.Parent := PlayButton
//
PlayImage.ReplaceColor:=$E2E2E2
PlayImage.ReplaceWithColor:=clBtnFace


PlayLabel := TLabel.Create(WizardForm)
PlayLabel.Width := PlayButton.Width
PlayLabel.Height := PlayButton.Height
PlayLabel.Autosize := False
PlayLabel.Transparent := True
PlayLabel.OnClick := @PlayButtonOnClick
PlayLabel.OnMouseDown := @PlayMouseDown
PlayLabel.OnMouseUp := @PlayMouseUp
PlayLabel.OnMouseMove := @PlayMouseMove
PlayLabel.Parent := PlayButton

PauseButton := TPanel.Create(WizardForm)
PauseButton.Left := 50
PauseButton.Top := 320
PauseButton.Width := 32
PauseButton.Height := 33
PauseButton.Cursor := crHand
PauseButton.ShowHint := True
PauseButton.Hint := 'Приостановить музыку'
PauseButton.OnClick := @PauseButtonOnClick
PauseButton.Parent := WizardForm

PauseImage := TBitmapImage.Create(WizardForm)
PauseImage.Left := -32
PauseImage.Top := 0
PauseImage.Width := 288
PauseImage.Height := 33
PauseImage.Enabled := False
PauseImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MusicButton.bmp'))
PauseImage.Parent := PauseButton
//
PauseImage.ReplaceColor:=$E2E2E2
PauseImage.ReplaceWithColor:=clBtnFace

PauseLabel := TLabel.Create(WizardForm)
PauseLabel.Width := PauseButton.Width
PauseLabel.Height := PauseButton.Height
PauseLabel.Autosize := False
PauseLabel.Transparent := True
PauseLabel.OnClick := @PauseButtonOnClick
PauseLabel.OnMouseDown := @PauseMouseDown
PauseLabel.OnMouseUp := @PauseMouseUp
PauseLabel.OnMouseMove := @PauseMouseMove
PauseLabel.Parent := PauseButton

StopButton := TPanel.Create(WizardForm)
StopButton.Left := 82
StopButton.Top := 320
StopButton.Width := 32
StopButton.Height := 33
StopButton.Cursor := crHand
StopButton.ShowHint := True
StopButton.Hint := 'Остановить музыку'
StopButton.OnClick := @StopButtonOnClick
StopButton.Parent := WizardForm

StopImage := TBitmapImage.Create(WizardForm)
StopImage.Left := -64
StopImage.Top := 0
StopImage.Width := 288
StopImage.Height := 33
StopImage.Enabled := False
StopImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MusicButton.bmp'))
StopImage.Parent := StopButton
//
StopImage.ReplaceColor:=$E2E2E2
StopImage.ReplaceWithColor:=clBtnFace

StopLabel := TLabel.Create(WizardForm)
StopLabel.Width := StopButton.Width
StopLabel.Height := StopButton.Height
StopLabel.Autosize := False
StopLabel.Transparent := True
StopLabel.OnClick := @StopButtonOnClick
StopLabel.OnMouseDown := @StopMouseDown
StopLabel.OnMouseUp := @StopMouseUp
StopLabel.OnMouseMove := @StopMouseMove
StopLabel.Parent := StopButton
end;

procedure DeinitializeSetup();
begin
BASS_Stop();
BASS_Free();
end;


Прилагаемые файлы: http://rghost.ru/3987698




© OSzone.net 2001-2012