欢迎来到天天文库
浏览记录
ID:37328615
大小:697.14 KB
页数:5页
时间:2019-05-21
《使用NSIS制作便携软件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、PortableAppC²有中国特色的便携件
2、PortableApps中文站软件目录常见问题ª开发指引ª搜索软件山寨建设Contact中文䇪坛邮件订阅RSS订阅Blog开发教育游戏图像影音网络文牍安全应用Enterkewords...使用N6I6制作便携软件使用NSIS制作便携件:以PotPlaerPortable为例前言正如上一篇文章所言,我推荐大家使用P.A.L来制作便携软件,重新制作轮子是没有必要的。关于便携软件的多个难点,例如多实例、进程控制、非正常退出恢制到本地运行、环境变量、路径替换等等,在P.A.L中都有相当成熟
3、的解决方案,用户只用填写一个ini,而不需要考虑便携软件是怎样运行的。省时省力、稳定点。但是,有的时候我们不得不编写一段自定义代码(customcode)才能实现某些要求,或者你是个代码狂人,喜欢看到自己指尖的代码编译成屏幕上运行的程必须接触P.A.L的母体——NSIS。Nullsoft脚本安装系统(NullsoftScriptableInstallSystem)是一个开放源代码的安装程序制作工具,(Nullsoft也是WinAmp的制作方)。使用一种制作安装程制作一种从不需要安装的程序——PortableApps,再适合不过了。因为
4、从本质来讲,Portableapps的运行原理,其实就是在程序启动时进行一次³安装´,在程序一次³卸载´(当然这个时间一般非常快)。PortableAppsLauncher的主要对象无非是注册表项与文件,而处理这些,正是NSIS的长项。NSIS语言简明易懂,特windows系统中的进程、注册表与文件。以下以PotPlayerPortable为例,浅谈使用NSIS制作便携软件的一般流程。要做什么?通过虚拟机观察得知,当PotPlayerMini.exe同目录存在PotPlayerMini.ini时,PotPlayer将配置保存在此ini
5、中,否则,则将配置保存在注册表中。因此,我们可以有两种选择:让PotPlayer保存配置在注册表,并在结束时导出为reg文件;或者保证其运行时目录下存在PotPlayerMini.ini,在结束后将PotPla至Data目录(程序与配置分离原则)。后一种选择的优点是,PotPlayerPortable可以与系统中安装的PotPlayer或其它位置的PotPlayerPortable同时运行,扰。因此我选择了保存配置进ini的方案。另外,我希望PotPlayerPortable首次运行时显示XMP-Gray-Tab这个皮肤,而不是唈认的
6、棒子文皮肤。因此,需要创建一个DefaultData。前期准备:创建PotPlayerPortable文件夹,创建AppAppInfo,AppDefaultData,AppPotPlayer,Sources。如右图。将PotPlayer程序文件放在AppPotPlayer目录中。在AppDefaultData中创建PotPlayerMini.ini,写入:1[Settings]2LastSkinName=[smilefly]XMP-Gray-Tab.dsf;定义唈认皮肤提取PotPlayer图标,保存为:AppAppInf
7、oappicon.ico。在Source中创建PotPlayerPortable.nsi,开始敲代码吧。以下分为3段讲解这个nsi文件。定义变量:将固定的文件、注册表项以变量的形式在文件头部声明,不但可以少敲些文字,也有利于减少笔误。1;DavidPi'sWork2;PortableAppC.com34;**************************************************************************5;===定义变量===6;***************************
8、***********************************************78!defineVER"1.5.29599.0";launcher的版本9!defineAPPNAME"PotPlayer";程序全名10!defineAPP"PotPlayer";程序短名称(不带空格)11!defineAPPEXE"PotPlayerMini.exe";主程序12!defineAPPDIR"AppPotPlayer";主程序路径13!defineAPPSWITCH``;唈认运行参数1415;---声明注册表---161
9、7!defineREGKEY1"HKEY_CURRENT_USERSoftwareDaum"18;其实对于PotPlayerPortable的制作并不需要修改注册表,作为示例而加上。1920;---声明目录---21
此文档下载收益归作者所有