vint56
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору #include "botva2.iss" [Setup] AppName=My Program AppVersion=1.5 AppVerName=My Program 1.5 DefaultDirName={pf}\My Program [Languages] Name: russian; MessagesFile: compiler:Languages\Russian.isl [Files] Source: music.mp3; DestDir: {tmp}; Flags: nocompression Source: botva2.dll; DestDir: {tmp}; Flags: nocompression Source: BASS_Files\bass.dll; DestDir: {tmp}; Flags: nocompression Source: BASS_Files\botva2.dll; DestDir: {tmp}; Flags: nocompression Source: BASS_Files\CallbackCtrl.dll; DestDir: {tmp}; Flags: nocompression Source: BASS_Files\MusicButton.png; DestDir: {tmp}; Flags: nocompression Source: BASS_Files\WFEnter.wav; DestDir: {tmp}; Flags: nocompression Source: BASS_Files\Click.wav; DestDir: {tmp}; Flags: nocompression Source: BASS_Files\Check.wav; DestDir: {tmp}; Flags: nocompression [Code] //************************************************ [Начало - Музыка] ***************************************************// #ifdef UNICODE #define A "W" PChar = PAnsiChar; #else #define A "A" #endif const BASS_ACTIVE_PLAYING = 1; BASS_ACTIVE_STALLED = 2; BASS_ACTIVE_PAUSED = 3; BASS_SAMPLE_LOOP = 4; var MusicButton1,MusicButton2,mp3Handle: HWND; mp3Name: String; function sndPlaySound(lpszSoundName: String; uFlags: cardinal):integer; external 'sndPlaySound{#A}@winmm.dll stdcall'; 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_Pause(): Boolean; external 'BASS_Pause@files:BASS.dll stdcall delayload'; function BASS_Stop(): Boolean; external 'BASS_Stop@files:BASS.dll stdcall delayload'; function BASS_Free(): Boolean; external 'BASS_Free@files:BASS.dll stdcall delayload'; function InitializeSetup:boolean; begin if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll'); if not FileExists(ExpandConstant('{tmp}\CallbackCtrl.dll')) then ExtractTemporaryFile('CallbackCtrl.dll'); Result:=True; end; procedure WFBtnEnter(hBtn:HWND); begin sndPlaySound(ExpandConstant('{tmp}\WFEnter.wav'), $0001); end; procedure MusicButtonClick(hBtn:HWND); begin sndPlaySound(ExpandConstant('{tmp}\Click.wav'), $0001); if BtnGetChecked(hBtn) then begin BASS_ChannelPause(mp3Handle); end else case BASS_ChannelIsActive(mp3Handle) of BASS_ACTIVE_PAUSED: begin BASS_ChannelPlay(mp3Handle, False); end; end; btnSetChecked(MusicButton1, BtnGetChecked(hBtn)) btnSetChecked(MusicButton2, BtnGetChecked(hBtn)) end; procedure InsertMusic; begin ExtractTemporaryFile('MusicButton.png'); ExtractTemporaryFile('BASS.dll'); ExtractTemporaryFile('Music.mp3'); ExtractTemporaryFile('Click.wav'); ExtractTemporaryFile('Check.wav'); ExtractTemporaryFile('WFEnter.wav'); MusicButton1:=BtnCreate(WizardForm.WelcomePage.Handle,ScaleX(20),ScaleY(20),ScaleX(25),ScaleY(23),ExpandConstant('{tmp}\MusicButton.png'),0,True); BtnSetEvent(MusicButton1,BtnClickEventID,WrapBtnCallback(@MusicButtonClick,1)); BtnSetEvent(MusicButton1,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetVisibility(MusicButton1,True); BtnSetCursor(MusicButton1,GetSysCursorHandle(32649)); ImgApplyChanges(WizardForm.WelcomePage.Handle); MusicButton2:=BtnCreate(WizardForm.SelectDirPage.Handle,ScaleX(20),ScaleY(20),ScaleX(25),ScaleY(23),ExpandConstant('{tmp}\MusicButton.png'),0,True); BtnSetEvent(MusicButton2,BtnClickEventID,WrapBtnCallback(@MusicButtonClick,1)); BtnSetEvent(MusicButton2,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetVisibility(MusicButton2,True); BtnSetCursor(MusicButton2,GetSysCursorHandle(32649)); ImgApplyChanges(WizardForm.SelectDirPage.Handle); mp3Name := ExpandConstant('{tmp}\Music.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); end; //************************************************ [Конец - Музыка] ***************************************************// procedure InitializeWizard; begin InsertMusic; end; procedure CurPageChanged(CurPageID: Integer); begin ImgApplyChanges(WizardForm.Handle); end; procedure DeinitializeSetup(); begin BASS_Stop(); BASS_Free(); gdipShutdown; end; | Всего записей: 1277 | Зарегистр. 07-10-2008 | Отправлено: 20:42 18-08-2011 | Исправлено: vint56, 20:45 18-08-2011 |
|