这个是提示安装过你可以设定其他语言说明 例如 已安装或重复安装; {pf}\空之轨迹SC 为安装目录文件文件夹,同理如果是其他目录更改目录即可
[Code]function InitializeSetup(): boolean;beginResult := true;if FileExists(ExpandConstant('{pf}\空之轨迹SC\ed6.exe')) thenbeginMsgBox('程序已经安装在你的系统中了
', mbInformation, MB_OK );Result := false;end;end;[Setup]AppName=纸莎草书繁体中文破解版;游戏名AppVerName=纸莎草书繁体中文破解版;游戏版本名AppPublisher=F.B.I游戏工作室(yang8871/yangteng);公司AppPublisherURL=http://www.aoizora.com;网站AppSupportURL=http://www.aoizora.comAppUpdatesURL=http://www.aoizora.comDefaultDirName=E:\空之轨迹SC;安装目录DisableDirPage=yesDisableReadyPage=yesDisableFinishedPage=yesDefaultGroupName=纸莎草书繁体中文破解版;产品名称LicenseFile=C:\Documents and Settings\Administrator\桌面\用户使用协议.txt;协议书(按同意之前要先看的那个)InfoAfterFile=C:\Documents and Settings\Administrator\桌面\安装后说明.txt; 安装完成后的话OutputDir=C:\Documents and Settings\Administrator\桌面;输出目录 存放的目录OutputBaseFilename=纸莎草书繁体中文破解版; 输出的游戏名称SetupIconFile=D:\图标\纸莎草书.ico;图标位置Compression=lzma;压缩方式:极限压缩SolidCompression=yes;(yes为固实压缩 no则相反)InternalCompressLevel=ultra;文件极限压缩 目录下的文件VersionInfoDescription=纸莎草书繁体中文破解版;产品名称VersionInfoCopyright=Copyright (C) 2009 By F.B.I游戏室(yang8871/yangteng);版权DiskSpanning=true; 分卷压缩DiskSliceSize=645766400;分割的文件大小 单位K 大小为615MVersionInfoVersion=1.0;文件版本VersionInfoTextVersion=1.0TouchTime=22:23 ;生成的时间PrivilegesRequired=none ;不需要管理权限也能安装AlwaysRestart=yes ;询问是否要重新启动?(可以设置强制重新启动但是感觉没必要就不要害人) [Files]Source: "C:\\纸莎草书繁体中文破解版\\game.exe"; DestDir: "{app}"; Flags: ignoreversion ;游戏生成的快捷方式所指原执行文件Source: "C:\\纸莎草书繁体中文破解版\\"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;要打包的目录[Languages]Name: "chinesesimp"; MessagesFile: "compileranguages\\ChineseSimp.isl" ;语言中性[Icons]Name: "{group}\\纸莎草书繁体中文破解版"; Filename:"{app}\\game.exe";WorkingDir:"{app}" ;生成开始菜单游戏可执行程序game.exe是你目录下的可执行文件 WorkingDir: {app}”WorkingDir后面加{app} app的意思是随安装目录生成Name: "{group}\\{cmrogramOnTheWeb,访问青空学园}"; Filename:" http://www.aoizora.com; WorkingDir: {app} " ;生成开始菜单网站Name: "{group}\\{cm:UninstallProgram,纸莎草书繁体中文破解版}"; Filename: "{uninstallexe}; WorkingDir: {app}";生成开始菜单卸载Name: "{commondesktop}\\纸莎草书繁体中文破解版"; Filename: "{app}\\game.exe"; Tasks: desktopicon;WorkingDir: "{app}";Tasks: desktopicon 任务:生成快捷方式[Tasks]Name: changestartpage; Description: "设置青空学园为主页" Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked ;Tasks: desktopicon 任务:生成快捷方式压缩方式的设置:默认是lzma[Setup]Compression=XXXXXX 表示压缩方式,目前的版本支持以下的压缩方式:zip ; 相当于 zip/7,是软件默认的压缩方式zip/1 ; Zip 格式,压缩率最低,速度最快,耗内存最少......zip/9 ; Zip 格式,压缩率最高,速度最慢,耗内存最大bzip ; 相当于 bzip/9bzip/1 ; BZip2 格式(压缩率高于 Zip 格式),压缩率最低,速度最快,耗内存最少......bzip/9 ; BZip2 格式,压缩率最高,速度最慢,耗内存最大lzma ; 相当于 lzma/maxlzma/fast ; 7-Zip LZMA 格式(压缩率高于 Zip 和 BZip2 格式),压缩率低,速度快lzma/normal ;7-Zip LZMA 格式,压缩率一般,速度一般lzma/max ;7-Zip LZMA 格式,压缩率高,速度慢lzma/ultra ;7-Zip LZMA 格式,超级压缩(谨慎使用,特别耗内存
)none ;不压缩让安装程序安装后随WINDOWS启动~这个感觉没必要 要娱乐一下的试试看?[Tasks]Name: "startup"; Description: "随 windwos 启动"; GroupDescription: "添加启动选" ;Takes建立任务类似快捷方式类的[Registry]Root: HKCU; SubKey: Software\\Microsoft\\Windows\\CurrentVersion\\Run; valueType: string; valueName: "fileBX"; valueData: "{app}\\fileBX.exe";Flags: uninsdeletevalue; Tasks: startup ;在注册表上修改随windows启动
想把这2个图片换了?安装软件后目录有2个图片 你可以替换这2个头像就可以了WizModernSmallImage.bmp 这个右上方的网站标志(注意只是举例)WizModernImage.bmp 这个是左边的游戏图片 [Code]procedure URLLabelOnClick(Sender: TObject);varErrorCode: Integer;beginShellExec('open', 'http://www.aoizora.com/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);end;procedure AboutButtonOnClick(Sender: TObject);beginMsgBox('^青空学园—多次元动漫游戏论坛^'#13#10' http://www.aoizora.com', mbInformation, MB_OK); ;这是关于按钮里面的内容 #13#10是换行的意思end;varAboutButton, CancelButton: TButton;URLLabel: TNewStaticText;procedure InitializeWizard();begin{ Create the pages }WizardForm.PAGENAMELABEL.Font.Color:= clred;WizardForm.PAGEDESCRIPTIONLABEL.Font.Color:= clBlue;WizardForm.WELCOMELABEL1.Font.Color:= clGreen;WizardForm.WELCOMELABEL2.Font.Color:= clblack;CancelButton := WizardForm.CancelButton;AboutButton := TButton.Create(WizardForm);AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width;AboutButton.Top := CancelButton.Top;AboutButton.Width := CancelButton.Width;AboutButton.Height := CancelButton.Height;AboutButton.Caption := 'About';AboutButton.OnClick := @AboutButtonOnClick;AboutButton.Parent := WizardForm;URLLabel := TNewStaticText.Create(WizardForm);URLLabel.Caption := '『青空学园』';URLLabel.Cursor := crHand;URLLabel.OnClick := @URLLabelOnClick;URLLabel.Parent := WizardForm;{ Alter Font after setting Parent so the correct defaults are inherited first }URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];URLLabel.Font.Color := clBlue;URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20);end;默认勾选同意~急着安装?不用急这就是设定默认的同意
[Code]varLabel2: TLabel;Label1: TLabel;CheckBox1: TCheckBox;NewStaticText1: TNewStaticText;procedure Cus_Next(Sender: TObject);beginif CheckBox1.Checked = True thenWizardForm.LicenseAcceptedRadio.Checked := TrueelseWizardForm.LicenseNotAcceptedRadio.Checked := Trueend;procedure InitializeWizard();beginWizardForm.LicenseMemo.Height := 127;WizardForm.LicenseAcceptedRadio.visible := False;WizardForm.LicenseNotAcceptedRadio.visible := False;Label1 := TLabel.Create(WizardForm);Label1.Parent := WizardForm.LicensePage;Label1.Left := WizardForm.LicenseMemo.Left;Label1.Top := WizardForm.LicenseMemo.Top + WizardForm.LicenseMemo.Height + 7;Label1.Width := WizardForm.LicenseMemo.Width;Label1.Height := ScaleY(12);Label1.Caption := '如果您接受许可协议,点击下方的单选框您必须接受协议才能安装 我的程序'#13'1.5单击 [下一步(N)] 继续';CheckBox1 := TCheckBox.Create(WizardForm);CheckBox1.Parent := WizardForm.LicensePage;CheckBox1.Left := WizardForm.LicenseMemo.Left;CheckBox1.Top := WizardForm.LicenseMemo.Top + WizardForm.LicenseMemo.Height + 47;CheckBox1.Width :=WizardForm.LicenseMemo.Width;CheckBox1.Height := ScaleY(17);CheckBox1.Caption := '我同意“许可协议”中的条款(&A)';CheckBox1.TabOrder := 0;CheckBox1.OnClick := @Cus_Next;end;去掉“关于安装程序”菜单[code]const MF_BYPOSITION=$400;function DeleteMenu(HMENU: HWND; uPosition: UINT; uFlags: UINT): BOOL;external 'DeleteMenu@user32.dll stdcall';function GetSystemMenu(HWND: hWnd; bRevert: BOOL): HWND;external 'GetSystemMenu@user32.dll stdcall';procedure InitializeWizard();beginDeleteMenu(GetSystemMenu(wizardform.handle,false),8,MF_BYPOSITION);DeleteMenu(GetSystemMenu(wizardform.handle,false),7,MF_BYPOSITION);end; [Messages]ClickNext=单击“下一步”继续,或单击“取消”退出安装程序%n%n%n%n%n%n%n此程序由yang8871/yangteng制作,对此程序保留权利%n欢迎加入青空学园: http://www.aoizora.com/ %n本程序仅供个人研究、学习而自行制作完成%n仅供论坛内部交流和使用,禁止用于任何商业用途 原始软件的所有权利皆属于原公司或组织
说明一下这个字体是跟上面那个欢迎安装向导的字体一样的
%n是空一行的意思学过C语言的都知道吧??C语言室/N inno是%N差不多了
换行符号:在 [Messages] 换行符号为%n在 MsgBox 中换行符号为 #13#10 //#13 为回车字符procedure InitializeWizard(); 这个不能重复~只能是一个~注意编译时常常会出现错误都是因为这个都归到一个命令下就可以了~ 左下方F.B.I标志 XXXX改为你的名字或组织均可
[Messages]BeveledLabel=XXXXXX添加任务设定为主页,卸载游戏以后会自动访问青空学园,至于安装游戏自动添加到收藏夹就不弄了因为系统不同的关系这个会出错~XP,VISTA默认的管理目录不同
[Tasks]Name: changestartpage; Description: "设置青空学园为主页";建立一个如上图的任务[Registry]Root: HKCU; Subkey: "Software\\Microsoft\\Internet Explorer\\Main"; ValueType: string; ValueName: "Start Page"; ValueData: "http://www.aoizora.com/"; tasks: changestartpage;定义网站地址 上面的www.aoizora.com 改成你想要修改的网页即可安装完成后想自动访问网站~[CODE]procedure CurStepChanged(CurStep: TSetupStep);varErrorCode: Integer;beginif CurStep=ssDone then ShellExec('open', 'http://www.aoizora.com ', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);end;安装、卸载时判断是否程序正在运行,卸载后自动打开网页[code]varErrorCode: Integer;IsRunning: Integer;// 安装时判断客户端是否正在运行 function InitializeSetup(): Boolean; begin Result :=true; //安装程序继续 IsRunning:=FindWindowByWindowName('东方宽频网络电视'); while IsRunning<>0 do begin if Msgbox('安装程序检测到客户端正在运行' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出
', mbConfirmation, MB_YESNO) = idNO then begin Result :=false; //安装程序退出 IsRunning :=0; end else begin Result :=true; //安装程序继续 IsRunning:=FindWindowByWindowName('东方宽频网络电视'); end; end; end; // 卸载时判断客户端是否正在运行 function InitializeUninstall(): Boolean; begin Result :=true; //安装程序继续 IsRunning:=FindWindowByWindowName('东方宽频网络电视'); while IsRunning<>0 do begin if Msgbox('安装程序检测到客户端正在运行' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出
', mbConfirmation, MB_YESNO) = idNO then begin Result :=false; //安装程序退出 IsRunning :=0; end else begin Result :=true; //安装程序继续 IsRunning:=FindWindowByWindowName('东方宽频网络电视'); end; end; end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin case CurUninstallStep of usUninstall: begin // 开始卸载 end; usPostUninstall: begin // 卸载完成 // MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall just finished.', mbInformation, MB_OK); // ...insert code to perform post-uninstall tasks here... ShellExec('open', 'http://www.dreams8.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode); end; end; end; 颜色代码颜色代码名称:clBlack(黑色),clMaroon(暗红),clGreen(绿色),clOlive(橄榄绿),clNavy(深蓝),clPurple(紫色),clTeal(深青),clGray(灰色),clSilver(浅灰),clRed(红色),clLime(浅绿),clYellow(黄色),clBlue(蓝色),clFuchsia(紫红),clAqua(青绿),clWhite(白色)这软件打包单个exe文件只能是2G一下为了刻盘方便一般都是分割成600多m一个的 CD最大容量为700MDVD则为4.7G 新版的2009卡巴斯基因为检测打开大型EXE文件特别慢所以做成这样最好不过了~方便收藏安装
[Setup]命令下面加可以了DiskSpanning=trueDiskSliceSize=645766400 这个是分割文件的大小
自动写入注册表有些部分是要手动注册的以下功能可实现自动注册
说明一下一般注册表都是自己手动进入注册表寻找的 不过有些玩家要求 这里介绍一个软件(万象注册表分析工具)大家不妨一试注册表监视器 用法:拖动exe安装程序到软件界面,安装结束后会弹出关于注册表变化的信息
大部分提取注册表适用,但是不排除有些游戏会出错
例如需要手动注册的注册表内容为:[HKEY_LOCAL_MACHINE\\Software\\NINELIVES\\Princess Maker3CHT\\1.0]"InstPath"="C:\\\\美少女梦工厂3梦幻妖精简体中文XP版"写入的内容应为:[Registry]Root: HKLM; SubKey: SOFTWARE\\NINELIVES; Flags: uninsdeletekeyifemptyRoot: HKLM; SubKey: SOFTWARE\\NINELIVES\\Princess Maker3CHT; Flags: uninsdeletekeyifemptyRoot: HKLM; SubKey: SOFTWARE\\NINELIVES\\Princess Maker3CHT\\1.0; Flags: uninsdeletekeyifemptyRoot: HKLM; SubKey: SOFTWARE\\NINELIVES\\Princess Maker3CHT\\1.0; Flags: uninsdeletekey; ValueType: string; ValueName: InstPath; ValueData: {app}不好意思各位我忽略了一些东西
本人不用ISTOOL的 基本上都是自己写
通过这个注册表工具可以提取注册表 或者自己到注册提取都可以
然后用ISTOOL导入变成IS能识别的语言
中级教程启动安装弹出闪屏及音乐,关于按钮也写进去了~原创编写·不过这插件是由高人提取NISS的插件应用到inno中的,使inno比之niss制作更加美观简单
来吧
不懂慢慢看
解压到桌面就可以了写的时候也是默认桌面的~注意解压的时候解压名为NSISADDIN 加了一点原创标志所以解压后名字不同~注意不然就把下面的命令自己改下一样的[Setup]AppName=我的程序AppVerName=我的程序 1.5 版本DefaultDirName={pf}\\我的程序DefaultGroupName=我的程序[Files]; 打包实现闪屏和背景音乐所必需的插件文件Source: "C:\\Documents and Settings\\Administrator\\桌面\\NSISADDIN\\NSISADDIN\\callnsis.dll"; DestDir: "{tmp}"; Flags: dontcopySource: "C:\\Documents and Settings\\Administrator\\桌面\\NSISADDIN\\NSISADDIN\\NewAdvSplash.dll"; DestDir: "{tmp}"; Flags: dontcopySource: "C:\\Documents and Settings\\Administrator\\桌面\\NSISADDIN\\NSISADDIN\\Bass.dll"; DestDir: "{tmp}"; Flags: dontcopy; 打包闪屏和背景音乐素材文件:闪屏图像文件 bmp、gif 或者 jpg 格式, 音乐文件 MP3、WAV 格式Source: "C:\\Documents and Settings\\Administrator\\桌面\\NSISADDIN\\NSISADDIN\\splash.gif"; DestDir: "{tmp}"; Flags: dontcopySource: "C:\\Documents and Settings\\Administrator\\桌面\\NSISADDIN\\NSISADDIN\\mymusic.mp3"; DestDir: "{tmp}"; Flags: dontcopy; 以下打包软件本身的文件; 请自己加上; 以下是安装脚本的其它段代码; 请自己加上[Code]TypeHSAMPLE = DWORD;HCHANNEL = DWORD;varMusicSwitchLabel0, MusicSwitchLabel1, MusicSwitchLabel2: TNewStaticText;sample: HSAMPLE;channel: HCHANNEL;// 以下是所调用的插件函数function BASS_Init(device: Integer; freq, flags: DWORD; win: HWND; clsid: string): Boolean;external 'BASS_Init@files:BASS.dll stdcall delayload';procedure BASS_Free();external 'BASS_Free@files:BASS.dll stdcall delayload';function BASS_SampleLoad(mem: BOOL; f: PChar; offset, length, max, flags: DWORD): HSAMPLE;external 'BASS_SampleLoad@files:BASS.dll stdcall delayload';function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL;external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';function BASS_ChannelPause(handle: DWORD): BOOL;external 'BASS_ChannelPause@files:BASS.dll stdcall delayload';function BASS_SampleGetChannel(handle: HSAMPLE; onlynew: BOOL): HCHANNEL;external 'BASS_SampleGetChannel@files:BASS.dll stdcall delayload';procedure callplug(parentwnd: Integer; pluginname,funcname,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10: PChar);external 'callplug@files:callnsis.dll stdcall delayload';// 以下是点击“关于”按钮后的响应函数procedure AboutButtonOnClick(Sender: TObject);beginMsgBox('这是你的信息'#13#10'这是你的信息的第二行', mbInformation, MB_OK);end;// 以下是点击“打开音乐”按钮后的响应函数procedure MusicSwitchLabel1OnClick(Sender: TObject);beginBASS_ChannelPlay(channel, false);MusicSwitchLabel1.Font.Color := clGray;MusicSwitchLabel2.Font.Color := clBlue;end;// 以下是点击“关闭音乐”按钮后的响应函数procedure MusicSwitchLabel2OnClick(Sender: TObject);beginBASS_ChannelPause(channel);MusicSwitchLabel2.Font.Color := clGray;MusicSwitchLabel1.Font.Color := clBlue;end;// 安装向导初始化函数procedure InitializeWizard();varAboutButton: TButton;BGMusicFile, SplashFile: string;begin// 创建“关于”按钮AboutButton := TButton.Create(WizardForm);AboutButton.Left := WizardForm.ClientWidth - WizardForm.CancelButton.Left - WizardForm.CancelButton.Width;AboutButton.Top := WizardForm.CancelButton.Top;AboutButton.Width := WizardForm.CancelButton.Width;AboutButton.Height := WizardForm.CancelButton.Height;AboutButton.Caption := '关于(&A)...';AboutButton.OnClick := @AboutButtonOnClick;AboutButton.Parent := WizardForm;// 创建文字标签“音乐:”MusicSwitchLabel0 := TNewStaticText.Create(WizardForm);MusicSwitchLabel0.Left := AboutButton.Left + ScaleX(90);MusicSwitchLabel0.Top := WizardForm.CancelButton.Top + ScaleY(3);MusicSwitchLabel0.Width := ScaleX(30);MusicSwitchLabel0.Height := ScaleY(12);MusicSwitchLabel0.Font.Color := clRed;MusicSwitchLabel0.Caption := '音乐:';MusicSwitchLabel0.Parent := WizardForm;// 创建文字标签作为“打开音乐”按钮(采用 Webdings 字体中的播放符号)MusicSwitchLabel1 := TNewStaticText.Create(WizardForm);MusicSwitchLabel1.Left := MusicSwitchLabel0.Left + ScaleX(33);MusicSwitchLabel1.Top := MusicSwitchLabel0.Top - ScaleY(3);MusicSwitchLabel1.Width := ScaleX(20);MusicSwitchLabel1.Height := ScaleY(12);MusicSwitchLabel1.Font.Color := clGray;MusicSwitchLabel1.Font.Name := 'webdings';MusicSwitchLabel1.Font.Size := -15;MusicSwitchLabel1.Cursor := crCross;MusicSwitchLabel1.Caption := #52MusicSwitchLabel1.ShowHint:= true;MusicSwitchLabel1.Hint:= '打开音乐';MusicSwitchLabel1.OnClick := @MusicSwitchLabel1OnClick;MusicSwitchLabel1.Parent := WizardForm;// 创建文字标签作为“关闭音乐”按钮(采用 Webdings 字体中的暂停符号)MusicSwitchLabel2 := TNewStaticText.Create(WizardForm);MusicSwitchLabel2.Left := MusicSwitchLabel1.Left + ScaleX(20);MusicSwitchLabel2.Top := MusicSwitchLabel0.Top - ScaleY(3);MusicSwitchLabel2.Width := ScaleX(20);MusicSwitchLabel2.Height := ScaleY(12);MusicSwitchLabel2.Font.Color := clBlue;MusicSwitchLabel2.Font.Name := 'webdings';MusicSwitchLabel2.Font.Size := -15;MusicSwitchLabel2.Cursor := crCross;MusicSwitchLabel2.Caption := #59MusicSwitchLabel2.ShowHint:= true;MusicSwitchLabel2.Hint:= '关闭音乐';MusicSwitchLabel2.OnClick := @MusicSwitchLabel2OnClick;MusicSwitchLabel2.Parent := WizardForm;// 释放临时文件ExtractTemporaryFile('BASS.dll');ExtractTemporaryFile('CallNSIS.DLL');ExtractTemporaryFile('NewAdvSplash.DLL');ExtractTemporaryFile('mymusic.mp3');ExtractTemporaryFile('splash.gif');BGMusicFile := ExpandConstant('{tmp}\\mymusic.mp3');SplashFile := ExpandConstant('{tmp}\\splash.gif');// 播放背景音乐if not BASS_Init(-1,44100,0,0,'') thenBASS_Free;sample := BASS_SampleLoad(false, PChar(BGMusicFile), 0, 0, 1, 4);if sample<>0 thenbeginchannel:= BASS_SampleGetChannel(sample, false);BASS_ChannelPlay(channel, true);end;// 闪屏:显示时间 1600、淡入 800、淡出 500、透明颜色 -2 (表示 gif 图像本身透明)callplug(0,ExpandConstant('{tmp}\\NewAdvSplash.dll'),'show','1600','800','500','-2',SplashFile,'','','','','');// 以下是安装向导初始化函数的其它代码// 请自己加上end;// 以下是其它 CODE 段代码水纹效果 高级教程:在安装界面的最上方会出现正在安装什么游戏?一层不变会让人厌倦来试试看这个?还有很多设定有兴趣的高手自己看看~inno目录下有个Default.isl 打开编辑看看,这个是界面设定,最好先备份错了修改错了再覆盖回去图片看看 [Messages]; 应用程序标题SetupAppTitle=正在安装中_请稍等(默认不是这个这个是我修改过的)SetupWindowTitle=正在安装中_请稍等- %1UninstallAppTitle=卸载UninstallAppFullTitle=%1 卸载
(图片来源网络,侵删)
0 评论