I think he just wants to Music button
Code:
[Setup]
AppName=MusicBtn
AppVersion=MusicBtn
DefaultDirName=MusicBtn
OutputDir=.
[Files]
Source: Files\*; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system;
[ Code]
const
BtnClickEventID = 1;
var
MusicPlayed: boolean;
type
TBtnEventProc = procedure (h:HWND);
var
h,MusicBtn:HWND;
function WrapBtnCallback(Callback: TBtnEventProc; ParamCount: Integer): Longword;
external 'wrapcallbackaddr@{tmp}\CallbackCtrl.dll stdcall delayload';
function BtnCreate(hParent :HWND; Left, Top, Width, Height :integer; FileName :PAnsiChar; ShadowWidth :integer; IsCheckBtn :boolean) :HWND;
external 'BtnCreate@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetEvent(h :HWND; EventID :integer; Event :Longword);
external 'BtnSetEvent@{tmp}\botva2.dll stdcall delayload';
procedure gdipShutdown;
external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload';
function mciSendString(lpstrCommand, lpstrReturnString: PAnsiChar; uReturnLength: Cardinal; hWndCallback: HWND): Cardinal;
external '[email protected] stdcall';
procedure MusicButtonOnClick(hBtn:HWND);
begin
If MusicPlayed
then
begin
mciSendString('pause Music','',0,0);
MusicPlayed:=false;
end
else
begin
mciSendString('open '+ExpandConstant('{tmp}\AutorunMusic.mp3')+' alias Music','',0,0);
mciSendString('play Music repeat','',0,0);
MusicPlayed:=true;
end;
end;
procedure InitializeWizard();
begin
with WizardForm do begin
mciSendString('open '+ExpandConstant('{tmp}\AutorunMusic.mp3')+' alias Music','',0,0);
mciSendString('play Music repeat','',0,0);
MusicPlayed:=true;
MusicBtn:=BtnCreate(WizardForm.Handle,20,317,40,40,ExpandConstant('{tmp}')+'\MusicButton.png',0,True);
BtnSetEvent(MusicBtn,BtnClickEventID,WrapBtnCallback(@MusicButtonOnClick,1));
end;
end;
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('musicbutton.png');
ExtractTemporaryFile('botva2.dll');
ExtractTemporaryFile('CallbackCtrl.dll');
ExtractTemporaryFile('AutorunMusic.mp3');
Result:=True;
end;
procedure DeinitializeSetup();
begin
gdipShutdown;
end;