【文章标题】: 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