【文章标题】: QvodPlayer播放器的封包研究
【文章作者】: 替天行道
【作者主页】: http://www.nesoy.com
【作者QQ号】: 123356398
【软件名称】: Qvod播放器
【使用工具】: 7zip,OD,NSIS等
【操作平台】: 盗版XPSP3
【软件介绍】: 快播(QvodPlayer)是一款基于准视频点播(QVOD)内核..
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
近日,朋友说想搞个QVodPlayer的安装包,看那么多地方都是自己改的,他也想了解下,别人是怎么样打包制作的,
因为很多绿化版或绿色,免安装版的打开在线播的网站都不可以播放,只有电影网自己本身的安装包和官方的才可
以,在屡遭失败之后,索性就想研究下,所以在此之下,就帮他研究研究。其实QVodplyer打包的文章到处可以,这
也不是什么先例,但只是要到到尽善尽美的话,可能没有几个会认真的去做,因为我搜了下,没有搜到,或许有,我
不知道而已,因为我搜到的大部分是出钱别人帮做的,无耐之下,只好自己研究。做一个高仿的官方版QVodPlayer,
并且可以播在线播放电影的。。
 
 
此次研究的目的就是为了了解QVODPLYER是怎么解包和卸载及其为什么安装版的就可以播放快播在线的电影,而其它
非安装版的就不可以,研究后自己做一个高仿的QVodPlayer的安装包,这不仅要高仿,而且要能用,像官方的一样可用,
呵呵,话不多说,开工。。。
 
一、下载官方网的播放器
官方地址:http://www.qvod.com/
我下载的是默认的标准版的那个,地址为:http://dl.qvod.com/QvodSetup3.exe
 
二、用7zip或UniExtract解包,并获取它的ICO图标,在制作脚本时要用到
在解包完后,我们可以看到,有这么几个文件夹,如下图

1.我们把有有文件夹前面有$符号的这个$去掉,因为这是我脚本里的变量,我们不能用$带头做文件夹,所以只好去掉
2.这些文件里面有些是.new结尾的,我们都不用管它。
3.用资源提取工具把里面的图标提取出来
 
 
 
三、用OD载入QvodSetup3.exe运行安装
这一步的主要目的是获取它的安装日志,看它是如何安装的,做了些什么
这个就不说了,有点经验的人都知道如何去获取了,后面我会附上我获取的安装日志

 
 
四、用SPY获取它的卸载日志
因为它在卸载完之后会有提示,提示已经卸载成功了,而它的日志我们可以看到,要想复制下来就要自己想办法啦,哈
哈,在附件中我也会附上我获取的卸载日志

 
五、下载安装NSIS
这个就不用说啦,自己搞定,至于为什么是用这个呢,我们在分析解包的时候就可以知道
 
六、制作安装脚本
我们可以先用向导生成一个基本的脚本,这个也不多说,这里主要说下我写脚本的方法和过程
安装脚本分析
 
1.安装包的安装分析
-----------------------------------------------

代码:
00000: 此为安装日志
00001:   输出目录: C:\Program Files\QvodPlayer                     ;输出一个目录
00002:   抽取: QvodInit.exe                                        ;提取文件
00003:   运行: "C:\Program Files\QvodPlayer\QvodInit.exe" setup    ;提取文件后以参数运行,通过分析这个参数运行是为了删除原来的
00004:   QVOPLAYER及其核心文件,如QvodTerminal.exe及其相应的DLL等,所以在这里我们在用脚本写的时候要用ExecWait这个函数,也就是
00005:   说等你用这个参数运行完这个程序后你才能安装其它的文件,要不然它会把你安装进去的删掉
00006:   抽取: QvodTerminal.exe
00007:   抽取: QvodPlayer.exe
00008:   输出目录: C:\Program Files\QvodPlayer
00009:   抽取: Baidu-Toolbar-utf8kb_cb.exe                         ;这个不用官它,一看就知道是安装的百度插件的安装程序
00010:   抽取: 360Inst-qvod001.exe                                 ;同上,360的
00011:   抽取: KuaiwanSetup_kb.exe                                 ;同上,快玩的,这些都是插件
00012:   抽取: NetAgent.dll.new                                    ;提取一个文件,并重命名
00013:   重命名: NetAgent.dll.new->NetAgent.dll
00014:   抽取: QvodInsert.dll.new                                
00015:   重命名: QvodInsert.dll.new->QvodInsert.dll
00016:   正在注册: C:\Program Files\QvodPlayer\QvodInsert.dll      ;注册一个DLL控件,下同
00017:   正在注册: C:\Program Files\QvodPlayer\QvodBand.dll
00018:   正在注册: C:\Program Files\QvodPlayer\ShareModule.dll
00019:   输出目录: C:\Program Files\QvodPlayer\Codecs              ;改变输出目录
00020:   抽取: asfsplliter.ax.new
00021:   重命名: asfsplliter.ax.new->asfsplliter.ax                ;提取一个文件,并重命名,然后注册这个解码控件,下同
00022:   正在注册: C:\Program Files\QvodPlayer\Codecs\asfsplliter.ax
00023:   抽取: RealMediaSplitter.ax.new
00024:   重命名: RealMediaSplitter.ax.new->RealMediaSplitter.ax
00025:   正在注册: C:\Program Files\QvodPlayer\Codecs\RealMediaSplitter.ax
00026:   删除文件: C:\Program Files\QvodPlayer\Codecs\ColorFilter.ax
00027:   抽取: ColorFilter.ax.new
00028:   重命名: ColorFilter.ax.new->ColorFilter.ax
00029:   正在注册: C:\Program Files\QvodPlayer\Codecs\ColorFilter.ax
00030:   抽取: cook.dll.new
00031:   重命名: cook.dll.new->cook.dll
00032:   抽取: drvc.dll.new
00033:   重命名: drvc.dll.new->drvc.dll
00034:   抽取: raac.dll.new
00035:   重命名: raac.dll.new->raac.dll
00036:   抽取: atrc.dll.new
00037:   重命名: atrc.dll.new->atrc.dll
00038:   抽取: f4v.swf.new
00039:   重命名: f4v.swf.new->f4v.swf
00040:   输出目录: C:\Program Files\QvodPlayer\Skin                ;改变输出目录,下同
00041:   抽取: Default.xml
00042:   抽取: Logo.bmp
00043:   抽取: Mini.xml
00044:   输出目录: C:\Program Files\QvodPlayer\Skin\MiNi
00045:   抽取: back.bmp
00046:   抽取: info.bmp
00047:   抽取: mute.bmp
00048:   抽取: mute2.bmp
00049:   抽取: next.bmp
00050:   抽取: open.bmp
00051:   抽取: pause.bmp
00052:   抽取: play.bmp
00053:   抽取: pre.bmp
00054:   抽取: processp.bmp
00055:   抽取: progress.bmp
00056:   抽取: progress_thumb.bmp
00057:   抽取: progressd.bmp
00058:   抽取: volume.bmp
00059:   抽取: volumeb.bmp
00060:   抽取: volumep.bmp
00061:   输出目录: C:\Program Files\QvodPlayer\Skin
00062:   输出目录: C:\Program Files\QvodPlayer\Skin\Default
00063:   抽取: back.bmp
00064:   抽取: backleft.bmp
00065:   抽取: backmid.bmp
00066:   抽取: backright.bmp
00067:   抽取: bgline.bmp
00068:   抽取: bleft1.bmp
00069:   抽取: bottom.bmp
00070:   抽取: bottomleft.bmp
00071:   抽取: bottomright.bmp
00072:   抽取: bright1.bmp
00073:   抽取: caption.bmp
00074:   抽取: close.bmp
00075:   抽取: full.bmp
00076:   抽取: icon.bmp
00077:   抽取: info.bmp
00078:   抽取: infofull.bmp
00079:   抽取: left.bmp
00080:   抽取: left1.bmp
00081:   抽取: listbutton.bmp
00082:   抽取: listbutton2.bmp
00083:   抽取: listsplit.bmp
00084:   抽取: lsearchb1.bmp
00085:   抽取: lsearchb2.bmp
00086:   抽取: lsearchbg.bmp
00087:   抽取: lsearchbg1.bmp
00088:   抽取: max.bmp
00089:   抽取: media_del.bmp
00090:   抽取: media_files.bmp
00091:   抽取: media_files_2.bmp
00092:   抽取: media_fill.bmp
00093:   抽取: media_info.bmp
00094:   抽取: media_search.bmp
00095:   抽取: media_sham.bmp
00096:   抽取: media_sham_2.bmp
00097:   抽取: mediaeditdel.bmp
00098:   抽取: mediare.bmp
00099:   抽取: mediatolist.bmp
00100:   抽取: mediatree.bmp
00101:   抽取: menu.bmp
00102:   抽取: min.bmp
00103:   抽取: mtk.bmp
00104:   抽取: mute.bmp
00105:   抽取: mute2.bmp
00106:   抽取: next.bmp
00107:   抽取: nowplay.bmp
00108:   抽取: open.bmp
00109:   抽取: pause.bmp
00110:   抽取: play.bmp
00111:   抽取: playlist_toolbar.bmp
00112:   抽取: pre.bmp
00113:   抽取: processp.bmp
00114:   抽取: progress.bmp
00115:   抽取: progress_point_a.bmp
00116:   抽取: progress_point_b.bmp
00117:   抽取: progress_thumb.bmp
00118:   抽取: reold.bmp
00119:   抽取: right.bmp
00120:   抽取: right1.bmp
00121:   抽取: scroll_back.bmp
00122:   抽取: scroll_back_h.bmp
00123:   抽取: scroll_down.bmp
00124:   抽取: scroll_left.bmp
00125:   抽取: scroll_limit.bmp
00126:   抽取: scroll_limit_h.bmp
00127:   抽取: scroll_right.bmp
00128:   抽取: scroll_up.bmp
00129:   抽取: search_botton.bmp
00130:   抽取: search_icon.bmp
00131:   抽取: stop.bmp
00132:   抽取: tab.bmp
00133:   抽取: tab1.bmp
00134:   抽取: tabs_fill.bmp
00135:   抽取: tabs_left.bmp
00136:   抽取: tabs_mid.bmp
00137:   抽取: tabs_right.bmp
00138:   抽取: tabs_search_fill.bmp
00139:   抽取: tabs_search_left.bmp
00140:   抽取: top.bmp
00141:   抽取: topleft.bmp
00142:   抽取: topleft1.bmp
00143:   抽取: topright.bmp
00144:   抽取: topright1.bmp
00145:   抽取: volume.bmp
00146:   抽取: volumeb.bmp
00147:   抽取: volumep.bmp
00148:   输出目录: C:\Program Files\QvodPlayer\Skin
00149:   输出目录: C:\Program Files\QvodPlayer\Tip
00150:   抽取: QvodTip.exe
00151:   抽取: QvodTips.dll
00152:   抽取: close.bmp
00153:   抽取: PopMessage.xml
00154:   抽取: maintext.bmp
00155:   抽取: view.bmp
00156:   抽取: back.bmp
00157:   输出目录: C:\Program Files\QvodPlayer\Lang
00158:   抽取: zh_TW.dll.new
00159:   重命名: zh_TW.dll.new->zh_TW.dll
00160:   抽取: en_US.dll.new
00161:   重命名: en_US.dll.new->en_US.dll
00162:   输出目录: C:\Program Files\QvodPlayer\Viewdata
00163:   输出目录: C:\Program Files\QvodPlayer\AddIn
00164:   抽取: VisLrc.dll
00165:   抽取: QvodAddr.dll
00166:   抽取: ASBarBroker.exe
00167:   抽取: conf.xml
00168:   输出目录: C:\Program Files\QvodPlayer\Lyrics
00169:   输出目录: C:\Program Files\QvodPlayer
00170:   输出目录: C:\WINDOWS\system32                            ;提取了一个DLL到系统目录
00171:   抽取: pncrt.dll
00172:   正在注册: C:\WINDOWS\system32\quartz.dll                 ;注册系统目录下的这几个控件
00173:   正在注册: C:\WINDOWS\system32\msxml.dll
00174:   正在注册: C:\WINDOWS\system32\msxml2.dll
00175:   正在注册: C:\WINDOWS\system32\msxml3.dll
00176:   输出目录: C:\Program Files\QvodPlayer
00177:   输出目录: C:\Program Files\QvodPlayer
00178:   "创建文件夹: " C:\Documents and Settings\Administrator\「开始」菜单\程序\快播软件   ;在程序组中建立快捷方式及程序组   
00179:   创建快捷方式: C:\Documents and Settings\Administrator\「开始」菜单\程序\快播软件\快播(QvodPlayer).lnk
00180:   创建快捷方式: C:\Documents and Settings\Administrator\「开始」菜单\程序\快播软件\卸载 QvodPlayer.lnk
00181:   输出目录: C:\Program Files\QvodPlayer
00182:   输出目录: C:\Program Files\QvodPlayer\Viewdata
00183:   抽取: **中心.swf
00184:   抽取: 节目推荐.swf
00185:   抽取: 热门游戏.swf
00186:   抽取: 网上购物.swf
00187:   输出目录: C:\Program Files\QvodPlayer
00188:   运行: "C:\Program Files\QvodPlayer\KuaiwanSetup_kb.exe" /S  ;安装快玩插件
00189:   输出目录: C:\Program Files\QvodPlayer
00190:   创建解除安装程序: C:\Program Files\QvodPlayer\QvodUninst.exe;创建卸载程序
--------------------------
2.卸载程序的卸载分析
安装容易,卸载可别小看它,写的不好,你卸载不完全,要不就卸不干净,所以卸载我们也要看下,它是如何实现的
---------------------------
代码:
00000: 正在解除注册: C:\Program Files\QvodPlayer\Codecs\asfsplliter.ax                   ;反注册几个播放器的解码组件
00001:   正在解除注册: C:\Program Files\QvodPlayer\Codecs\RealMediaSplitter.ax
00002:   正在解除注册: C:\Program Files\QvodPlayer\Codecs\ColorFilter.ax
00003:   输出目录: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp                                       ;把输出目录改为临时文件夹,以免删了不该删的文件,也可以防止卸载时出错
00004:   运行: "C:\Program Files\QvodPlayer\QvodPlayer.exe" u_unbzb                         ;先运行程序目录里的QvodPlayer.exe,以u_unbzb 这个参数运行,这个照猜是自动结束进行及其相关的附加程序等
00005:   抽取: QvodInit.exe                                                                 ;从卸载程序里面提取QvodInit.exe 这个文件
00006:   运行: "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\QvodInit.exe" del                        ;提取后以del这个参数运行,这里应该就是删相关程序级删不掉的组件了
00007:   删除文件: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\QvodInit.exe                          ;上面几个参数的运行都要用到ExecWait,也就是说要等到这个程序运行完后才能执行下一步的动作,要不然这样会出错,下同。
00008:   运行: "C:\Program Files\QvodPlayer\AddIn\ASBarBroker.exe" /runasAdmin /SVCUninstall /QvodAddr.dll
00009:   删除文件: E:\Backup\桌面\快播QvodPlayer.lnk                                        ;删除桌面及程序组中的快捷方式,并把程序组中建立的文件及文件夹删除
00010:   删除文件: C:\Documents and Settings\Administrator\「开始」菜单\程序\快播软件\快播(QvodPlayer).lnk
00011:   删除文件: C:\Documents and Settings\Administrator\「开始」菜单\程序\快播软件\卸载 QvodPlayer.lnk
00012:   移除目录: C:\Documents and Settings\Administrator\「开始」菜单\程序\快播软件\
00013:   删除文件: C:\Program Files\QvodPlayer\Codecs\asfsplliter.ax
00014:   删除文件: C:\Program Files\QvodPlayer\Codecs\atrc.dll
00015:   删除文件: C:\Program Files\QvodPlayer\Codecs\ColorFilter.ax
00016:   删除文件: C:\Program Files\QvodPlayer\Codecs\cook.dll
00017:   删除文件: C:\Program Files\QvodPlayer\Codecs\drvc.dll
00018:   删除文件: C:\Program Files\QvodPlayer\Codecs\f4v.swf
00019:   删除文件: C:\Program Files\QvodPlayer\Codecs\raac.dll
00020:   删除文件: C:\Program Files\QvodPlayer\Codecs\RealMediaSplitter.ax
00021:   移除目录: C:\Program Files\QvodPlayer\Codecs\
00022:   重新启动后删除: C:\Program Files\QvodPlayer\Data\AD\                                ;有些文件或文件夹删不掉,重启后删除,那么这里要用到 /REBOOTOK这个参数,后面在制作脚本中会说到。后面的就是递规删除文件及目录啦,所以要把输入文件夹设成临时文件夹,就是这个原因,要不然,一不小心,在递规删除时把你电脑所有文件over了,呵呵,所以要千万小心
00023:   重新启动后删除: C:\Program Files\QvodPlayer\Data\
00024:   删除文件: C:\Program Files\QvodPlayer\Favorite\Desktop.ini
00025:   移除目录: C:\Program Files\QvodPlayer\Favorite\
00026:   删除文件: C:\Program Files\QvodPlayer\Lang\en_US.dll
00027:   删除文件: C:\Program Files\QvodPlayer\Lang\zh_TW.dll
00028:   移除目录: C:\Program Files\QvodPlayer\Lang\
00029:   删除文件: C:\Program Files\QvodPlayer\Playlist\Channel.xml
00030:   删除文件: C:\Program Files\QvodPlayer\Playlist\Keywords.xml
00031:   删除文件: C:\Program Files\QvodPlayer\Playlist\Mediacenter.xml
00032:   删除文件: C:\Program Files\QvodPlayer\Playlist\Playlist.xml
00033:   删除文件: C:\Program Files\QvodPlayer\Playlist\QvodSearch.xml
00034:   移除目录: C:\Program Files\QvodPlayer\Playlist\
00035:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\back.bmp
00036:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\backleft.bmp
00037:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\backmid.bmp
00038:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\backright.bmp
00039:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\bgline.bmp
00040:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\bleft1.bmp
00041:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\bottom.bmp
00042:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\bottomleft.bmp
00043:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\bottomright.bmp
00044:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\bright1.bmp
00045:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\caption.bmp
00046:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\close.bmp
00047:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\full.bmp
00048:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\icon.bmp
00049:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\info.bmp
00050:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\infofull.bmp
00051:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\left.bmp
00052:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\left1.bmp
00053:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\listbutton.bmp
00054:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\listbutton2.bmp
00055:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\listsplit.bmp
00056:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\lsearchb1.bmp
00057:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\lsearchb2.bmp
00058:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\lsearchbg.bmp
00059:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\lsearchbg1.bmp
00060:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\max.bmp
00061:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\mediaeditdel.bmp
00062:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\mediare.bmp
00063:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\mediatolist.bmp
00064:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\mediatree.bmp
00065:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\media_del.bmp
00066:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\media_files.bmp
00067:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\media_files_2.bmp
00068:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\media_fill.bmp
00069:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\media_info.bmp
00070:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\media_search.bmp
00071:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\media_sham.bmp
00072:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\media_sham_2.bmp
00073:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\menu.bmp
00074:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\min.bmp
00075:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\mtk.bmp
00076:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\mute.bmp
00077:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\mute2.bmp
00078:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\next.bmp
00079:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\nowplay.bmp
00080:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\open.bmp
00081:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\pause.bmp
00082:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\play.bmp
00083:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\playlist_toolbar.bmp
00084:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\pre.bmp
00085:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\processp.bmp
00086:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\progress.bmp
00087:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\progress_point_a.bmp
00088:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\progress_point_b.bmp
00089:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\progress_thumb.bmp
00090:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\reold.bmp
00091:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\right.bmp
00092:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\right1.bmp
00093:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\scroll_back.bmp
00094:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\scroll_back_h.bmp
00095:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\scroll_down.bmp
00096:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\scroll_left.bmp
00097:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\scroll_limit.bmp
00098:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\scroll_limit_h.bmp
00099:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\scroll_right.bmp
00100:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\scroll_up.bmp
00101:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\search_botton.bmp
00102:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\search_icon.bmp
00103:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\stop.bmp
00104:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\tab.bmp
00105:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\tab1.bmp
00106:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\tabs_fill.bmp
00107:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\tabs_left.bmp
00108:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\tabs_mid.bmp
00109:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\tabs_right.bmp
00110:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\tabs_search_fill.bmp
00111:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\tabs_search_left.bmp
00112:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\top.bmp
00113:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\topleft.bmp
00114:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\topleft1.bmp
00115:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\topright.bmp
00116:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\topright1.bmp
00117:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\volume.bmp
00118:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\volumeb.bmp
00119:   删除文件: C:\Program Files\QvodPlayer\Skin\Default\volumep.bmp
00120:   移除目录: C:\Program Files\QvodPlayer\Skin\Default\
00121:   删除文件: C:\Program Files\QvodPlayer\Skin\Default.xml
00122:   删除文件: C:\Program Files\QvodPlayer\Skin\Logo.bmp
00123:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\back.bmp
00124:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\info.bmp
00125:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\mute.bmp
00126:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\mute2.bmp
00127:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\next.bmp
00128:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\open.bmp
00129:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\pause.bmp
00130:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\play.bmp
00131:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\pre.bmp
00132:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\processp.bmp
00133:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\progress.bmp
00134:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\progressd.bmp
00135:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\progress_thumb.bmp
00136:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\volume.bmp
00137:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\volumeb.bmp
00138:   删除文件: C:\Program Files\QvodPlayer\Skin\MiNi\volumep.bmp
00139:   移除目录: C:\Program Files\QvodPlayer\Skin\MiNi\
00140:   删除文件: C:\Program Files\QvodPlayer\Skin\Mini.xml
00141:   移除目录: C:\Program Files\QvodPlayer\Skin\
00142:   删除文件: C:\Program Files\QvodPlayer\Viewdata\**中心.swf
00143:   删除文件: C:\Program Files\QvodPlayer\Viewdata\热门游戏.swf
00144:   删除文件: C:\Program Files\QvodPlayer\Viewdata\网上购物.swf
00145:   删除文件: C:\Program Files\QvodPlayer\Viewdata\节目推荐.swf
00146:   移除目录: C:\Program Files\QvodPlayer\Viewdata\
00147:   删除文件: C:\Program Files\QvodPlayer\AddIn\ASBarBroker.exe
00148:   删除文件: C:\Program Files\QvodPlayer\AddIn\QvodAddr.dll
00149:   删除文件: C:\Program Files\QvodPlayer\AddIn\VisLrc.dll
00150:   移除目录: C:\Program Files\QvodPlayer\AddIn\
00151:   移除目录: C:\Program Files\QvodPlayer\Lyrics\
00152:   删除文件: C:\Program Files\QvodPlayer\Tip\back.bmp
00153:   删除文件: C:\Program Files\QvodPlayer\Tip\close.bmp
00154:   删除文件: C:\Program Files\QvodPlayer\Tip\maintext.bmp
00155:   删除文件: C:\Program Files\QvodPlayer\Tip\PopMessage.xml
00156:   删除文件: C:\Program Files\QvodPlayer\Tip\QvodTip.exe
00157:   删除文件: C:\Program Files\QvodPlayer\Tip\QvodTips.dll
00158:   删除文件: C:\Program Files\QvodPlayer\Tip\view.bmp
00159:   移除目录: C:\Program Files\QvodPlayer\Tip\
00160:   删除文件: C:\Program Files\QvodPlayer\NetAgent.dll
00161:   删除文件: C:\Program Files\QvodPlayer\Qvod.cfg
00162:   删除文件: C:\Program Files\QvodPlayer\QvodCfg.ini
00163:   重新启动后删除: C:\Program Files\QvodPlayer\QvodInsert.dll
00164:   删除文件: C:\Program Files\QvodPlayer\QvodPlayer.exe
00165:   删除文件: C:\Program Files\QvodPlayer\QvodPlayer.xml
00166:   删除文件: C:\Program Files\QvodPlayer\QvodTerminal.exe
00167:   删除文件: C:\Program Files\QvodPlayer\ShareModule.dll
00168:   删除文件: C:\Program Files\QvodPlayer\agent.ini
00169:   已完成
 
---------------------------------
3.安装程序里的自定义界面分析
在我们对QvodSetup3.exe解完包后,里面的$PLUGINSDIR里,我们可以看到有几个奇怪的dll,ini及其它一些文件,看目录
我们就可以知道这是个插件目录,那么它有个自定义界面,如下图:

这个是怎么做出来的呢,其实就是通过这个文件夹里的qvod1.ini文件实现的,我们可以分析下其它的几个文件,它们都是
用来装插件的,呵呵,我们这里就不研究如何打包我们不想装的这种插件啦,这东西自己发挥吧!
 
4.脚本的写作
我们先用向导生成一个基本框架的脚本文件,如图

然后对自己想要的功能进行设置和修改
 
 
附上脚本:
-----------------------
代码:
00000: 
00001:   ; 该脚本替天行道(QQ:123356398)编写制作
00002:   ; 请尊重作者的劳动成果www.nesoy.com
00003:   
00004:   !include "FileFunc.nsh"
00005:   !include "LogicLib.nsh"
00006:   
00007:   ; 安装程序初始定义常量
00008:   !define PRODUCT_NAME "快播(QvodPlayer)"
00009:   !define PRODUCT_VERSION "3.5"
00010:   ;下面这句是应用程序出版人
00011:   !define PRODUCT_PUBLISHER "替天行道"
00012:   !define PRODUCT_WEB_SITE "http://www.nesoy.com"
00013:   !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
00014:   !define PRODUCT_UNINST_ROOT_KEY "HKLM"
00015:   
00016:   
00017:   
00018:   SetCompressor lzma
00019:   
00020:   ; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------
00021:   !include "MUI.nsh"
00022:   
00023:   ; MUI 预定义常量
00024:   !define MUI_ABORTWARNING
00025:   !define MUI_ICON "ICO.ico"
00026:   !define MUI_UNICON "ICO.ico"
00027:   
00028:   ; 语言选择窗口常量设置
00029:   !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
00030:   !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
00031:   !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
00032:   
00033:   ; 欢迎页面
00034:   !insertmacro MUI_PAGE_WELCOME
00035:   ; 许可协议页面
00036:   !insertmacro MUI_PAGE_LICENSE "说明文件.txt"
00037:   ; 组件选择页面
00038:   !insertmacro MUI_PAGE_COMPONENTS
00039:   ;自定义页面
00040:   Var hwnd ; 自定义页面的窗口句柄
00041:   Page custom PageInitFunc PageLeaveFunc # 自定义页面,设定了两个函数
00042:   
00043:   ; 该脚本替天行道(QQ:123356398)编写制作
00044:   ; 请尊重作者的劳动成果
00045:   ; 安装目录选择页面
00046:   ;!insertmacro MUI_PAGE_DIRECTORY
00047:   ; 安装过程页面
00048:   !insertmacro MUI_PAGE_INSTFILES
00049:   ; 安装完成页面
00050:   !define MUI_FINISHPAGE_RUN "$INSTDIR\QvodPlayer.exe"
00051:   !define MUI_FINISHPAGE_RUN_TEXT "运行 ${PRODUCT_NAME} ${PRODUCT_VERSION}"
00052:   ;以下为自己加的,打开主页
00053:   !define MUI_FINISHPAGE_SHOWREADME
00054:   !define MUI_FINISHPAGE_SHOWREADME_FUNCTION Info
00055:   !define MUI_FINISHPAGE_SHOWREADME_TEXT "打开${PRODUCT_PUBLISHER}的BLOG"
00056:   
00057:   !insertmacro MUI_PAGE_FINISH
00058:   ; 该脚本替天行道(QQ:123356398)编写制作
00059:   ; 请尊重作者的劳动成果
00060:   ; 安装卸载过程页面
00061:   !insertmacro MUI_UNPAGE_INSTFILES
00062:   
00063:   ; 安装界面包含的语言设置
00064:   !insertmacro MUI_LANGUAGE "SimpChinese"
00065:   !insertmacro MUI_LANGUAGE "English"
00066:   
00067:   #================以下为添加版本信息==================================
00068:   ;Adds the Product Version on top of the Version Tab in the Properties of the file.
00069:   VIProductVersion "${PRODUCT_VERSION}.0.64" ;这是版本的版本号,记得要3个小数点
00070:   ;Adds a field in the Version Tab of the File Properties.
00071:   
00072:   VIAddVersionKey   "ProductName" "${PRODUCT_NAME}"
00073:   VIAddVersionKey   "CompanyName" "${PRODUCT_PUBLISHER}"
00074:   
00075:   ;下面这个是显示版本信息里的版权
00076:   ;VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright (c) ${PRODUCT_PUBLISHER} Company"
00077:   VIAddVersionKey  "LegalCopyright" "Copyright (c) 2006-2010 QVOD"
00078:   
00079:   ;下面这个是显示版本信息里的描述
00080:   ;VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "${PRODUCT_NAME} Application"
00081:   VIAddVersionKey  "FileDescription" "QvodSetup"
00082:   
00083:   VIAddVersionKey  "Comments" "http://www.nesoy.com" ;备注
00084:   ;以下为产品版本
00085:   ;VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "${PRODUCT_VERSION}"
00086:   VIAddVersionKey   "FileVersion" "${PRODUCT_VERSION}.0.64"
00087:   
00088:   ;下面这句是输出的源文件名,官方版没有
00089:   ;VIAddVersionKey /LANG=${LANG_ENGLISH} "OriginalFilename" "${PRODUCT_NAME}_${PRODUCT_VERSION}.${PRODUCT_PACKAGE_ID}${PRODUCT_PACKAGE_SPECIAL_ID}_Setup.exe"
00090:   ;下面这句是压缩包制作日期
00091:   ;VIAddVersionKey /LANG=${LANG_ENGLISH} "Package Build Date" "${__DATE__}"
00092:   ;下面这句是输出的输出名,
00093:   ;OutFile "${PRODUCT_NAME}_${PRODUCT_VERSION}.${PRODUCT_PACKAGE_ID}${PRODUCT_PACKAGE_SPECIAL_ID}_Setup.exe"
00094:   
00095:   
00096:   
00097:   #======================版本信息结束====================
00098:   ; 该脚本替天行道(QQ:123356398)编写制作
00099:   ; 请尊重作者的劳动成果www.nesoy.com
00100:   
00101:   
00102:   ; 安装预释放文件
00103:   !insertmacro MUI_RESERVEFILE_LANGDLL
00104:   !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
00105:   ; ------ MUI 现代界面定义结束 ------
00106:   
00107:   Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
00108:   OutFile "QvodSetup3.exe"
00109:   ;InstallDir "$PROGRAMFILES\QvodPlayer"
00110:   ShowInstDetails show
00111:   ShowUnInstDetails show
00112:   BrandingText "Qvod Player 3.5"
00113:   #/////////下面这两个函数是判断最大的磁盘是哪个//////////////
00114:   ;Section
00115:   ;  ;查找所有硬盘驱动器(HDD)
00116:   ;  ${GetDrives} "HDD" "FindHDD"
00117:   ;  MessageBox MB_OK "最大可用空间驱动器盘符:$R2"
00118:   ;SectionEnd
00119:   
00120:   #//////////////////////////////////
00121:   Section "QvodPlayer" SEC01
00122:   SectionIn RO ;这句代表必选组件
00123:   
00124:     SetOutPath "$INSTDIR"
00125:     SetOverwrite ifnewer
00126:     
00127:     File "官方提取\QvodInit.exe"
00128:   ;这个主要是起到删除QvodTerminal.exe及QvodPlayer.exe的作用
00129:     ExecWait '"$INSTDIR\QvodInit.exe" setup'
00130:   
00131:     File "官方提取\QvodTerminal.exe"
00132:     File "官方提取\QvodPlayer.exe"
00133:     File "官方提取\NetAgent.dll.new"
00134:     Rename "$INSTDIR\NetAgent.dll.new" "$INSTDIR\NetAgent.dll"
00135:   
00136:     ;写出QvodInsert.dll文件
00137:     File "官方提取\QvodInsert.dll.new"
00138:     Rename "$INSTDIR\QvodInsert.dll.new" "$INSTDIR\QvodInsert.dll"
00139:     RegDLL "$INSTDIR\QvodInsert.dll"
00140:     ;写出QvodBand.dll文件
00141:     File "官方提取\QvodBand.dll"
00142:     RegDLL "$INSTDIR\QvodBand.dll"
00143:     ;写出ShareModule.dll文件
00144:     File "官方提取\ShareModule.dll"
00145:     RegDLL "$INSTDIR\ShareModule.dll"
00146:     ;这个卸载程序就不用安装了,呵呵
00147:     ;File "官方提取\QvodUninst.exe"
00148:     
00149:     #Codecs下面的所有文件
00150:     SetOutPath "$INSTDIR\Codecs"
00151:     File "官方提取\Codecs\asfsplliter.ax.new"
00152:     Rename "$INSTDIR\Codecs\asfsplliter.ax.new" "$INSTDIR\Codecs\asfsplliter.ax"
00153:     RegDLL "$INSTDIR\Codecs\asfsplliter.ax"
00154:     
00155:     File "官方提取\Codecs\RealMediaSplitter.ax.new"
00156:     Rename "$INSTDIR\Codecs\RealMediaSplitter.ax.new" "$INSTDIR\Codecs\RealMediaSplitter.ax"
00157:     RegDLL "$INSTDIR\Codecs\RealMediaSplitter.ax"
00158:   
00159:     File "官方提取\Codecs\ColorFilter.ax.new"
00160:     Rename "$INSTDIR\Codecs\ColorFilter.ax.new" "$INSTDIR\Codecs\ColorFilter.ax"
00161:     RegDLL "$INSTDIR\Codecs\ColorFilter.ax"
00162:   
00163:     File "官方提取\Codecs\cook.dll.new"
00164:     Rename "$INSTDIR\Codecs\cook.dll.new" "$INSTDIR\Codecs\cook.dll"
00165:     
00166:     File "官方提取\Codecs\drvc.dll.new"
00167:     Rename "$INSTDIR\Codecs\drvc.dll.new" "$INSTDIR\Codecs\drvc.dll"
00168:     
00169:     File "官方提取\Codecs\raac.dll.new"
00170:     Rename "$INSTDIR\Codecs\raac.dll.new" "$INSTDIR\Codecs\raac.dll"
00171:     
00172:     File "官方提取\Codecs\atrc.dll.new"
00173:     Rename "$INSTDIR\Codecs\atrc.dll.new" "$INSTDIR\Codecs\atrc.dll"
00174:     
00175:     File "官方提取\Codecs\f4v.swf.new"
00176:     Rename "$INSTDIR\Codecs\f4v.swf.new" "$INSTDIR\Codecs\f4v.swf"
00177:     #=============Codecs结束=============================
00178:     
00179:     #============Skin下面的所有文件==============
00180:     SetOutPath "$INSTDIR\Skin"
00181:     File "官方提取\Skin\Default.xml"
00182:     File "官方提取\Skin\Logo.bmp"
00183:     File "官方提取\Skin\Mini.xml"
00184:     #//////////////////////////////
00185:     #根据官方解包得出的数据,它用了$_OUTDIR这个函数,所以,我们要想做到高仿就也给它加个这东东,
00186:     #那么,在别人解包你的安装包时也会和官方的一样,也有个$_OUTDIR文件夹,里面的文件也一样
00187:   
00188:     StrCpy "$_OUTDIR" "$INSTDIR\Skin"
00189:     SetOutPath "$_OUTDIR"
00190:     SetOutPath "$_OUTDIR\MiNi"
00191:     File "官方提取\_OUTDIR\MiNi\back.bmp"
00192:     File "官方提取\_OUTDIR\MiNi\info.bmp"
00193:     File "官方提取\_OUTDIR\MiNi\mute.bmp"
00194:     File "官方提取\_OUTDIR\MiNi\mute2.bmp"
00195:     File "官方提取\_OUTDIR\MiNi\next.bmp"
00196:     File "官方提取\_OUTDIR\MiNi\open.bmp"
00197:     File "官方提取\_OUTDIR\MiNi\pause.bmp"
00198:     File "官方提取\_OUTDIR\MiNi\play.bmp"
00199:     File "官方提取\_OUTDIR\MiNi\pre.bmp"
00200:     File "官方提取\_OUTDIR\MiNi\processp.bmp"
00201:     File "官方提取\_OUTDIR\MiNi\progress.bmp"
00202:     File "官方提取\_OUTDIR\MiNi\progress_thumb.bmp"
00203:     File "官方提取\_OUTDIR\MiNi\progressd.bmp"
00204:     File "官方提取\_OUTDIR\MiNi\volume.bmp"
00205:     File "官方提取\_OUTDIR\MiNi\volumeb.bmp"
00206:     File "官方提取\_OUTDIR\MiNi\volumep.bmp"
00207:   
00208:   ; 该脚本替天行道(QQ:123356398)编写制作
00209:   ; 请尊重作者的劳动成果www.nesoy.com  
00210:     SetOutPath "$_OUTDIR"
00211:     SetOutPath "$_OUTDIR\Default"
00212:   
00213:     File "官方提取\_OUTDIR\Default\back.bmp"
00214:     File "官方提取\_OUTDIR\Default\backleft.bmp"
00215:     File "官方提取\_OUTDIR\Default\backmid.bmp"
00216:     File "官方提取\_OUTDIR\Default\backright.bmp"
00217:     File "官方提取\_OUTDIR\Default\bgline.bmp"
00218:     File "官方提取\_OUTDIR\Default\bleft1.bmp"
00219:     File "官方提取\_OUTDIR\Default\bottom.bmp"
00220:     File "官方提取\_OUTDIR\Default\bottomleft.bmp"
00221:     File "官方提取\_OUTDIR\Default\bottomright.bmp"
00222:     File "官方提取\_OUTDIR\Default\bright1.bmp"
00223:     File "官方提取\_OUTDIR\Default\caption.bmp"
00224:     File "官方提取\_OUTDIR\Default\close.bmp"
00225:     File "官方提取\_OUTDIR\Default\full.bmp"
00226:     File "官方提取\_OUTDIR\Default\icon.bmp"
00227:     File "官方提取\_OUTDIR\Default\info.bmp"
00228:     File "官方提取\_OUTDIR\Default\infofull.bmp"
00229:     File "官方提取\_OUTDIR\Default\left.bmp"
00230:     File "官方提取\_OUTDIR\Default\left1.bmp"
00231:     File "官方提取\_OUTDIR\Default\listbutton.bmp"
00232:     File "官方提取\_OUTDIR\Default\listbutton2.bmp"
00233:     File "官方提取\_OUTDIR\Default\listsplit.bmp"
00234:     File "官方提取\_OUTDIR\Default\lsearchb1.bmp"
00235:     File "官方提取\_OUTDIR\Default\lsearchb2.bmp"
00236:     File "官方提取\_OUTDIR\Default\lsearchbg.bmp"
00237:     File "官方提取\_OUTDIR\Default\lsearchbg1.bmp"
00238:     File "官方提取\_OUTDIR\Default\max.bmp"
00239:     File "官方提取\_OUTDIR\Default\media_del.bmp"
00240:     File "官方提取\_OUTDIR\Default\media_files.bmp"
00241:     File "官方提取\_OUTDIR\Default\media_files_2.bmp"
00242:     File "官方提取\_OUTDIR\Default\media_fill.bmp"
00243:     File "官方提取\_OUTDIR\Default\media_info.bmp"
00244:     File "官方提取\_OUTDIR\Default\media_search.bmp"
00245:     File "官方提取\_OUTDIR\Default\media_sham.bmp"
00246:     File "官方提取\_OUTDIR\Default\media_sham_2.bmp"
00247:     File "官方提取\_OUTDIR\Default\mediaeditdel.bmp"
00248:     File "官方提取\_OUTDIR\Default\mediare.bmp"
00249:     File "官方提取\_OUTDIR\Default\mediatolist.bmp"
00250:     File "官方提取\_OUTDIR\Default\mediatree.bmp"
00251:     File "官方提取\_OUTDIR\Default\menu.bmp"
00252:     File "官方提取\_OUTDIR\Default\min.bmp"
00253:     File "官方提取\_OUTDIR\Default\mtk.bmp"
00254:     File "官方提取\_OUTDIR\Default\mute.bmp"
00255:     File "官方提取\_OUTDIR\Default\mute2.bmp"
00256:     File "官方提取\_OUTDIR\Default\next.bmp"
00257:     File "官方提取\_OUTDIR\Default\nowplay.bmp"
00258:     File "官方提取\_OUTDIR\Default\open.bmp"
00259:     File "官方提取\_OUTDIR\Default\pause.bmp"
00260:     File "官方提取\_OUTDIR\Default\play.bmp"
00261:     File "官方提取\_OUTDIR\Default\playlist_toolbar.bmp"
00262:     File "官方提取\_OUTDIR\Default\pre.bmp"
00263:     File "官方提取\_OUTDIR\Default\processp.bmp"
00264:     File "官方提取\_OUTDIR\Default\progress.bmp"
00265:     File "官方提取\_OUTDIR\Default\progress_point_a.bmp"
00266:     File "官方提取\_OUTDIR\Default\progress_point_b.bmp"
00267:     File "官方提取\_OUTDIR\Default\progress_thumb.bmp"
00268:     File "官方提取\_OUTDIR\Default\reold.bmp"
00269:     File "官方提取\_OUTDIR\Default\right.bmp"
00270:     File "官方提取\_OUTDIR\Default\right1.bmp"
00271:     File "官方提取\_OUTDIR\Default\scroll_back.bmp"
00272:     File "官方提取\_OUTDIR\Default\scroll_back_h.bmp"
00273:     File "官方提取\_OUTDIR\Default\scroll_down.bmp"
00274:     File "官方提取\_OUTDIR\Default\scroll_left.bmp"
00275:     File "官方提取\_OUTDIR\Default\scroll_limit.bmp"
00276:     File "官方提取\_OUTDIR\Default\scroll_limit_h.bmp"
00277:     File "官方提取\_OUTDIR\Default\scroll_right.bmp"
00278:     File "官方提取\_OUTDIR\Default\scroll_up.bmp"
00279:     File "官方提取\_OUTDIR\Default\search_botton.bmp"
00280:     File "官方提取\_OUTDIR\Default\search_icon.bmp"
00281:     File "官方提取\_OUTDIR\Default\stop.bmp"
00282:     File "官方提取\_OUTDIR\Default\tab.bmp"
00283:     File "官方提取\_OUTDIR\Default\tab1.bmp"
00284:     File "官方提取\_OUTDIR\Default\tabs_fill.bmp"
00285:     File "官方提取\_OUTDIR\Default\tabs_left.bmp"
00286:     File "官方提取\_OUTDIR\Default\tabs_mid.bmp"
00287:     File "官方提取\_OUTDIR\Default\tabs_right.bmp"
00288:     File "官方提取\_OUTDIR\Default\tabs_search_fill.bmp"
00289:     File "官方提取\_OUTDIR\Default\tabs_search_left.bmp"
00290:     File "官方提取\_OUTDIR\Default\top.bmp"
00291:     File "官方提取\_OUTDIR\Default\topleft.bmp"
00292:     File "官方提取\_OUTDIR\Default\topleft1.bmp"
00293:     File "官方提取\_OUTDIR\Default\topright.bmp"
00294:     File "官方提取\_OUTDIR\Default\topright1.bmp"
00295:     File "官方提取\_OUTDIR\Default\volume.bmp"
00296:     File "官方提取\_OUTDIR\Default\volumeb.bmp"
00297:     File "官方提取\_OUTDIR\Default\volumep.bmp"
00298:   
00299:     SetOutPath "$INSTDIR\Skin"
00300:     #============Skin结束==============
00301:     #============Tip文件夹开始==============
00302:     SetOutPath "$INSTDIR\Tip"
00303:     File "官方提取\Tip\QvodTip.exe"
00304:     File "官方提取\Tip\QvodTips.dll"
00305:     File "官方提取\Tip\close.bmp"
00306:     File "官方提取\Tip\PopMessage.xml"
00307:     File "官方提取\Tip\maintext.bmp"
00308:     File "官方提取\Tip\view.bmp"
00309:     File "官方提取\Tip\back.bmp"
00310:     #============Tip结束==============
00311:     #============LANG文件夹开始==============
00312:     SetOutPath "$INSTDIR\Lang"
00313:     File "官方提取\Lang\zh_TW.dll.new"
00314:     Rename "$INSTDIR\Lang\zh_TW.dll.new" "$INSTDIR\Lang\zh_TW.dll"
00315:     File "官方提取\Lang\en_US.dll.new"
00316:     Rename "$INSTDIR\Lang\en_US.dll.new" "$INSTDIR\Lang\en_US.dll"
00317:     #============LANG文件夹结束==============
00318:     
00319:     #============AddIn文件夹开始==============
00320:     ;SetOutPath "$INSTDIR\Viewdata"
00321:     
00322:     SetOutPath "$INSTDIR\AddIn"
00323:     File "官方提取\AddIn\VisLrc.dll"
00324:     File "官方提取\AddIn\QvodAddr.dll"
00325:     File "官方提取\AddIn\ASBarBroker.exe"
00326:     File "官方提取\AddIn\conf.xml"
00327:     #============AddIn文件夹结束==============
00328:     #============文件夹开始==============
00329:     SetOutPath "$INSTDIR\Lyrics"
00330:     SetOutPath "$INSTDIR"
00331:     
00332:     SetOutPath "$SYSDIR"
00333:     File "官方提取\SYSDIR\pncrt.dll"
00334:     #============文件夹结束==============
00335:     
00336:     #============注册控件开始==============
00337:     RegDLL "$SYSDIR\quartz.dll"
00338:     RegDLL "$SYSDIR\msxml.dll"
00339:     RegDLL "$SYSDIR\msxml2.dll"
00340:     RegDLL "$SYSDIR\msxml3.dll"
00341:     #============注册控件结束==============
00342:     SetOutPath "$INSTDIR"
00343:     SetOutPath "$INSTDIR"
00344:     ;运行注入文件,其实运行了这个函数后,你打开QVODPLAYER在线直接的网站才能自动连接,也就是我们讲的网络模块,所以这是个关键;
00345:     Exec "$INSTDIR\QvodTerminal.exe"
00346:     
00347:     StrCpy "$_OUTDIR" "$INSTDIR"
00348:     SetOutPath "$_OUTDIR"
00349:     SetOutPath "$_OUTDIR\Viewdata"
00350:     
00351:     File "官方提取\_OUTDIR\Viewdata\**中心.swf"
00352:     File "官方提取\_OUTDIR\Viewdata\节目推荐.swf"
00353:     File "官方提取\_OUTDIR\Viewdata\热门游戏.swf"
00354:     File "官方提取\_OUTDIR\Viewdata\网上购物.swf"
00355:     SetOutPath "$INSTDIR"
00356:     
00357:   
00358:   SectionEnd
00359:   ; 该脚本替天行道(QQ:123356398)编写制作
00360:   ; 请尊重作者的劳动成果www.nesoy.com
00361:   
00362:   #=======文件关联目录制作================
00363:   
00364:   #这个自己研究,在此不作讨论,呵呵
00365:   
00366:   #=======文件关联目录制作结束================
00367:   
00368:   ;这下面是添加到程序组的
00369:   Section -AdditionalIcons
00370:     WriteIniStr "$INSTDIR\${PRODUCT_PUBLISHER}的小站.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
00371:     CreateDirectory "$SMPROGRAMS\快播软件"
00372:     CreateShortCut "$SMPROGRAMS\快播软件\快播(QvodPlayer).lnk" "$INSTDIR\QvodPlayer.exe"
00373:     CreateShortCut "$SMPROGRAMS\快播软件\卸载 QvodPlayer.lnk" "$INSTDIR\QvodUninst.exe"
00374:     WriteIniStr "$SMPROGRAMS\快播软件\${PRODUCT_PUBLISHER}的小站.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
00375:     ;下面这个是建立快捷方式
00376:     CreateShortCut "$DESKTOP\快播QvodPlayer.lnk" "$INSTDIR\QvodPlayer.exe"
00377:     WriteIniStr "$DESKTOP\${PRODUCT_PUBLISHER}的小站.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
00378:     
00379:     SetOutPath "$INSTDIR"
00380:   SectionEnd
00381:   
00382:   ; 该脚本替天行道(QQ:123356398)编写制作
00383:   ; 请尊重作者的劳动成果www.nesoy.com
00384:   
00385:   Section -Post
00386:     WriteUninstaller "$INSTDIR\QvodUninst.exe"
00387:     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
00388:     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\QvodUninst.exe"
00389:     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
00390:     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
00391:     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
00392:   SectionEnd
00393:   
00394:   #-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#
00395:   
00396:   #这里为自己写的函数
00397:   ReserveFile "qvod1.ini" # 预先打包文件,方便安装加速释放 qvod1.ini
00398:   ReserveFile "QvodInit.exe" # 预先打包文件,方便安装加速释放 QvodInit.exe
00399:   
00400:   Function .onInit
00401:     InitPluginsDir
00402:     !insertmacro MUI_LANGDLL_DISPLAY
00403:     File /oname=$PLUGINSDIR\qvod1.ini "qvod1.ini"  ; 释放 qvod1.ini 文件
00404:     File /oname=$PLUGINSDIR\QvodInit.exe "QvodInit.exe"  ; 释放 QvodInit.exe 文件
00405:   
00406:   FunctionEnd
00407:   
00408:   Function "FindHDD"
00409:     ;获取查找到的驱动器盘符($9)可用空间(/D=F)单位兆(/S=M)
00410:     ${DriveSpace} $9 "/D=F /S=M" $R0
00411:     ${If} $R0 > $R1
00412:       StrCpy $R1 $R0
00413:       StrCpy $R2 $9
00414:     ${EndIf}
00415:     Push $0
00416:   FunctionEnd
00417:   ;下面是取变量加到ini文件里,是动态获取的
00418:   Function PageInitFunc
00419:     WriteINIStr "$PLUGINSDIR\qvod1.ini" "Field 3" "State" "$PROGRAMFILES\QvodPlayer"
00420:     ;查找所有的硬盘{HDD},并找出最大可用空间驱动器盘符
00421:     ${GetDrives} "HDD" "FindHDD"
00422:     WriteINIStr "$PLUGINSDIR\qvod1.ini" "Field 4" "State" "$R2Media\" ;在自定义界面中设置安装路径
00423:     WriteINIStr "$PLUGINSDIR\qvod1.ini" "Field 8" "State" "1"         ;在自定义界面中设置为默认钩选自动启动网络模块
00424:     WriteINIStr "$PLUGINSDIR\qvod1.ini" "Field 8" "Text" "在Windows启动时运行网络模块"
00425:     InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\qvod1.ini"
00426:     Pop $hwnd             ; 获取自定义页面的窗口句柄
00427:     InstallOptions::show  ; 显示自定义页面
00428:     Pop $0
00429:     
00430:   FunctionEnd
00431:   
00432:   Function PageLeaveFunc
00433:     ReadINIStr $INSTDIR "$PLUGINSDIR\qvod1.ini" "Field 3" "State"
00434:     ReadINIStr $0 "$PLUGINSDIR\qvod1.ini" "Field 4" "State"
00435:     ReadINIStr $1 "$PLUGINSDIR\qvod1.ini" "Field 8" "State"
00436:     WriteRegStr HKCU "Software\QvodPlayer\Insert" "Insertpath" "$INSTDIR"   ;写入到注册表
00437:     WriteRegStr HKCU "Software\QvodPlayer\Option" "defaultsavepath" "$0"
00438:     WriteRegStr HKCU "Software\QvodPlayer\Option" "newpath" "1"
00439:   
00440:     ;下面是判断你是否勾选了“在Windows启动时运行网络模块”,如果是,则在注册表的启动项里加入
00441:     StrCmp $1 0 NextBtn
00442:     ;  MessageBox MB_OK "$1"
00443:       WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "QvodPlayer" "$INSTDIR\QvodTerminal.exe"
00444:       Goto NextBtn
00445:       Abort    ;如果不是就不进行操作
00446:     NextBtn:
00447:   
00448:   
00449:   FunctionEnd
00450:   
00451:   
00452:   Function Info ;打个自己的主页
00453:     ExecShell "open" "${PRODUCT_WEB_SITE}"
00454:   Functionend
00455:   
00456:   
00457:   ; 该脚本替天行道(QQ:123356398)编写制作
00458:   ; 请尊重作者的劳动成果www.nesoy.com
00459:   
00460:   
00461:   /******************************
00462:    *  以下是安装程序的卸载部分  *
00463:    ******************************/
00464:   
00465:   Section Uninstall
00466:     UnRegDLL "$INSTDIR\Codecs\asfsplliter.ax"
00467:     UnRegDLL "$INSTDIR\Codecs\RealMediaSplitter.ax"
00468:     UnRegDLL "$INSTDIR\Codecs\ColorFilter.ax"
00469:     
00470:     ;取临时文件夹
00471:     SetOutPath "$TEMP"
00472:     
00473:     ExecWait '"$INSTDIR\QvodPlayer.exe" u_unbzb'
00474:     File "官方提取\QvodInit.exe"
00475:     ExecWait '"$TEMP\QvodInit.exe" del'
00476:     Delete "$TEMP\QvodInit.exe"
00477:     ExecWait '"$INSTDIR\AddIn\ASBarBroker.exe" /runasAdmin /SVCUninstall /QvodAddr.dll'
00478:     
00479:     ;删除桌面快捷方式
00480:     Delete "$DESKTOP\快播QvodPlayer.lnk"
00481:     Delete "$DESKTOP\${PRODUCT_PUBLISHER}的小站.url"
00482:     ;删除程序组
00483:     Delete "$SMPROGRAMS\快播软件\快播(QvodPlayer).lnk"
00484:     Delete "$SMPROGRAMS\快播软件\卸载 QvodPlayer.lnk"
00485:     RMDir /r "$SMPROGRAMS\快播软件"
00486:     Delete /REBOOTOK "$INSTDIR\${PRODUCT_NAME}.url"
00487:     Delete "$INSTDIR\QvodUninst.exe"
00488:     Delete /REBOOTOK "$INSTDIR\*.*"
00489:     RMDir /r "$INSTDIR"
00490:   
00491:     DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
00492:     ;删除注册表的其它项
00493:     DeleteRegKey HKCU "Software\QvodPlayer"
00494:     DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Run\QvodPlayer"
00495:     SetAutoClose true
00496:   SectionEnd
00497:   
00498:   #-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#
00499:   
00500:   Function un.onInit
00501:   !insertmacro MUI_UNGETLANGUAGE
00502:     MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2
00503:     Abort
00504:   FunctionEnd
00505:   
00506:   Function un.onUninstSuccess
00507:     ;HideWindow
00508:     MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从您的计算机移除。"
00509:   FunctionEnd
00510:   
00511:   #;=============以下为版本使用说明========================
00512:   #;Version Information
00513:   #;如果有/LANG=${LANG_你的语言ID}这个参数,说明用指定语言,如果没有,则为中性语言
00514:   #VIProductVersion "x.x.x.x" ;<---- 你的产品版本, 必须由四个部分组成
00515:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "ProductName" "你的产品名称"
00516:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "ProductVersion" "${Ver}" ;产品版本
00517:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "Comments" "你的注释"
00518:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "CompanyName" "你的公司名称"
00519:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "LegalTrademarks" "你的合法商标"
00520:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "LegalCopyright" "你的版权信息"
00521:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "FileDescription" "你的产品描述"
00522:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "OriginalFilename" "你的原始文件名"
00523:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "InternalName" "内部文件名"
00524:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "FileVersion" "文件版本"
00525:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "PrivateBuild" "XX" ;个人内部版本说明
00526:   #VIAddVersionKey /LANG=${LANG_你的语言ID} "SpecialBuild" "XX" ;特殊内部本本说明
--------------------
 
运行效果如下:

 
脚本基本上就是这样了,在NSIS中运行编译,把这个脚本编译下,再运行自己的成功果实吧,是不是一样的呢,呵呵,
如下图,也可以自己改改

附件下载地址:
http://u.115.com/file/f3a3f8d38b
QvodPlayer播放器的封包研究.7z 

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
 
2010年11月16日 14:29:35