与众不同 制作会唱歌的WinRAR - imsoft.cnblogs

  为了使用方便,我们可能会把RAR压缩包制作成自解压文件。WinRAR自带的自解压模块虽然使用很方便,但千篇一律的外观看起来实在

乏味。其实,只要通过简单改造,你就可以制作出与众不同,声色俱佳的WinRAR自解压界面,让你的朋友羡慕去吧。

认清自解压模块的真面目  

  进入WinRAR的安装路径,你会看到几个后缀名为“SFX”的文件,它们就是WinRAR的自解压模块(图1)。找到“Default.SFX”并复制一

份作为备份,以便在操作失败后补救。你可以把它的后缀名改为“EXE”,运行一下看看(图2)。奇怪吧,看上去就是一个普通的WinRAR自解压

文件。它实际是一个用来包装WinRAR压缩文件的外壳,因为不包含任何文件,所以才显示“压缩文件格式未知或已经损坏”。现在大家应该明

白了,自解压文件的界面就是由“Default.SFX”来决定的,改造它就可以让自解压文件改头换面。

图1:

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

   图2:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

  既然“Default.SFX”是一个可执行的程序,那么问题就简单了,汉化软件的常用工具eXeScope和Resource

Hacker都可以查看和编辑可执行程序的资源。用Resource

Hacker打开,试试查看它的对话框资源,得到的却是一个错误提示(图3)。看来这个文件是被压缩过的(也称为加壳)。用ASPack、UPX或

PECompact等工具软件对EXE文件进行压缩,不会影响其使用,但可以减小文件体积,还能避免文件被破解或者资源被修改。现在无法用 Resource

Hacker查看“Default.SFX”中的资源,就是这个原因。

图3:  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

 

   与众不同 制作会唱歌的WinRAR(二)

  

  由于无法确定是用哪种软件压缩的,因此需要借助工具软件PEiD对其进行分析。用PEiD打开“Default.SFX”,显示它被UPX工具压缩过

(图4),因此首先要进行解压(脱壳),否则无法对它进行修改。用UPX Shell打开“Default.SFX”(UPX

Shell是UPX的图形化界面程序,通过它能够方便地调用UPX完成各种操作),选择解压缩(图5)。

图4:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

图5:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

 

   与众不同 制作会唱歌的WinRAR(三)

  

浓妆淡抹,改造外观  

  用Resource

Hacker打开解压后的“Default.SFX”,现在就能正确显示其中资源了(图6)。先从“对话框”下手,可以看到每个子项都包含3个资源:“1028

”为繁体中文资源,“1033” 为英文资源,“2052”为简体中文资源。为了减小自解压模块的体积,把用不到的繁体中文和英文资源全部删掉。同样的道理,无用的繁体中

文和英文字符串资源也可以一并剔除。

图6:  

 

  

  接下来,我们开始替换其中的图标及位图资源。图标资源就是自解压文件在Windows系统中显示的图标,而位图资源则是显示在自解压

主界面的图片,我们可以找一些喜欢的图片和图标替换默认资源。图片必须是BMP格式(256色),尺寸可以自定,但是最好不要超过400×227或

227×400像素,否则很容易出现问题;而图标则为ICO格式,需要4个样式(分别是16×16@16色、16×16@256

色、32×32@16色和32×32@256色)。备齐这些资源后,用eXescope打开“Default.SFX”文件,选择要替换的资源,点击“导入”按钮进行替换

,并在提示更新文件时予以确认(图7)。

图7:  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

easy提示

  

  位图资源的尺寸对自解压模块的体积影响很大,如果自解压模块的图片过大,压缩文件转换为自解压文件后体积将增加很多,这将影响 其实用性。  

  下面来看看对话框资源,按“F12”键可进行预览(图8),可以确认其中的“ASKNEXTVOL”为分卷压缩包解压提示,“GETPASSWORD1”为

输入解压密码,“LICENSEDLG”为安装协议对话框,“RENAMEDLG”为重命名对话框,“REPLACEFILEDLG”为替换文件对话框,“STARTDLG”为

自解压模块主界面。显然,需要修改的就是“STARTDLG”和“LICENSEDLG”。

图8:  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

  

 

   与众不同 制作会唱歌的WinRAR(四)

  

  选中“STARTDLG”按下“F8”键即可打开“对话框编辑器”。点选其中的对象元素,然后通过鼠标的即时操作调节其大小与位置(图9)

。如果要进行比较精细的调整(例如对齐),可在eXescope右侧窗口的上方直接填写具体的数值。文字信息也可以在标题中直接修改。另外,我

们还可以对其中的资源的布局进行设置,如不想要其中的文字说明部分,只需取消它的可见属性(图10)。

图9:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

图10:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

  修改的过程中,尤其要注意的是图片框的尺寸不能小于前面设置的位图资源,否则会显示不完整,影响整体效果。靠肉眼观察显示是不

准确的,那有没有能较好地解决这个问题的方法呢?答案是有的。例如位图的尺寸为176像素宽,209像素高,除以1.5以后为117和140,直接在

eXescope中把图像对象的尺寸设置为117×140就可以了(图11)。修改尺寸时要注意确认对象类型,以免弄错。通过不断的修改,自解压模块的

界面已经焕然一新了(图12)。“LICENSEDLG”与“STARTDLG”有很多相同之处,但对象元素较少,因此可参照按照“STARTDLG”进行修改,这

里便不再赘述。为了风格统一,建议两者使用相同布局。

图11:

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

图12:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

 

   与众不同 制作会唱歌的WinRAR(五)

  

  至此,自解压模块的修改已基本完成,为了进一步彰显个性,还可以为自解压模块打上专属标记,比如主页及电子信箱等信息。用 Resource

Hacker打开“Default.SFX”文件,在对话框资源“STARTDLG”中单击鼠标右键,选择“插入控件”(图13)。点击“label”或者从预定义控件

下拉列表中选择“STATIC”,并在标题位置填入想显示的信息(图14)。如果有多行可以分别添加,调整好控件的大小及位置后,点击“编译脚

本”按钮(图15),保存退出即可。

图13:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

图14:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

图15:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

 

   与众不同 制作会唱歌的WinRAR(六)

  

  接下来开始测试。具体过程是将自解压模块放在WinRAR的安装目录中,然后创建自解压文件测试自解压模块工作是否正常(图16)。某些

情况下,Resource

Hacker保存资源后会出现无法使用的问题,这时只需将修改出问题的模块删掉,使用其保存前自动备份的模块(Default_original.SFX)改名后

重新修改即可。测试满意后,再利用UPX

Shell将修改后的模块压缩。一般来讲,压缩比能达到50%左右,体积已大幅减小。再次将压缩后的模块复制到WinRAR的安装路径下,如果测试

没问题,恭喜你,大功告成(图17)。

图16:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

easy提示  

  将修改好的自解压模块改名为“Default.SFX”,覆盖WinRAR安装目录中的同名文件,这样便可直接使用,减少选择

模块的过程,精简操作步骤。  

 

   与众不同 制作会唱歌的WinRAR(七)

  

锦上添花,加入音乐  

  视觉效果已经完成了,下面再来加入听觉效果。找一个合适的音乐文件作为自解压文件的背景音乐,文件格式可以是MP3、MIDI等。考

虑到文件的体积,建议使用MIDI格式,如果实在想使用MP3格式,最好是节选一段并降低码率,以控制文件体积。

  

  选择需要压缩的文件及文件夹,右键单击选择“添加到压缩文件”,在弹出的对话框中勾选“创建自解压格式压缩文件”(图18),填写

好文件名后点击“高级”页面中的“自解压选项”。切换到“文本和图标”页面,在“自解压文件窗口中显示的文本”中填入以下信息(图19)

。由于WinRAR的安装脚本支持部分HTML格式,因此这部分内容就是当作HTML处理的。

  

  ┌───────────────────────────────┐

  │ │

  │……此处信息可自定义……

  │……根据需要填写相应信息…… │

  │ │

  │

  └───────────────────────────────┘

图18:

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

图19:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

  其中“EMBED

src="http://article.pchome.net/http://article.pchome.net/midi.mid"”指定背景音乐文件名,“autostart="true"”代表自动播放音乐文件,“width”和“height”代表控制面板的宽和高,两者

设为“0”就不会显示播放控制面板,破坏整体美观。点击两次“确定”后就可以生成自解压文件了。  

 

   与众不同 制作会唱歌的WinRAR(八)

  

  然后把背景音乐文件“http://article.pchome.net/http://article.pchome.net/midi.mid”以及刚才生成的自解压文件同时选中,再次打包为自解压文件。先填写好文件名,点击“高级”页面

中的“自解压选项”,在“常规”页面的“解压后运行”输入框中填入上第一次打包生成的自解压文件名(图20)。在“模式”页面勾选“解包

到临时文件夹”、“全部隐藏”和“覆盖所有文件”这三项(图21),点击两次“确定”按钮后即可得到最终的自解压文件(使用这种模式要慎重

,网络上某些木马就是通过这种方式传播的)。

图20:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

   图21:

  

制作会唱歌的WinRAR - shenzhiping131415 - shenzhiping131415的博客

  

  运行自解压文件,稍等一下就会看到我们定制的自解压界面,同时还有优美的背景音乐从音箱中传出,制作一个这样的自解压文件发给

朋友,自豪地告诉他们“我的WinRAR会唱歌!”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

看到这一幕,我甚至都想戒烟了。。 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅(图源网络,侵权删)

c#3.0关于JSON简单操作的实用帮助类(泛型实现)

关于json的操作,网上一搜一大把。避免重复造轮子,整理发布一个笔者在项目开发中经常用到的一个json实用帮助类,泛型实现,非常方便。不废话了,贴代码:1、json操作的帮助类: Codeusing System;usi…

谁还没个黑历史了。。。 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅(图源网络,侵权删)

C# 虚方法与抽象方法区别

虚方法是必须要实现的,只有接口或者抽象方法才没有实现体,什么是实现体,就是方法的那对大括号:下面举例:public abstract void Fn1();//定义一个抽象方法 public vitrual void Fn2(){ };//定义一个虚方法(那对大括号必…

京东面试官:呦,你对中间件 Mycat了解的还挺深~

1.数据切分概念 数据的切分[(Sharding)]根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机))之上,这种切可以称之为数据的垂直…

Redis与Memcached的区别

2019独角兽企业重金招聘Python工程师标准>>> 传统MySQL Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量…

“高仿版拼多多”宣告破产!曾一年收割1.3亿用户,如今自救失败负债16亿

全世界只有3.14 % 的人关注了青少年数学之旅又一家改变世界的互联网公司跑路了啊?挣扎数月的淘集集最终也回天乏术了。淘集集并购重组最终失败,供应商何时能拿到被拖欠的货款仍然遥遥无期。这家主打比“拼多多”更下沉市场的社交电商,平台上线…

处在哪个阶段?

在职业生涯中,可以划分出多个阶段,但是如下3个阶段也许是最粗糙和实在的: 1、入门级,在别人的领导下可以完成工作。 2、成熟级,可以独立完成工作。 3、精英级,可以领到别人完成工作。 你处在哪个阶段&#…

在VS Code中直接调试Web程序,是怎样一种体验?

前言要在VS Code中启动Chrome或Microsoft Edge中调试任何Web程序,您只需按F5或选择菜单"运行"->"启动调试"来启动会话。你可以选择在Chrome、Edge或Node.js中进行调试。Edge DevTools如果选择了Edge进行调试,你会发现调试工具条上…

面试官问:你做过什么Java线程池实践,我写了一篇博客给他看~

线程池大家都## 标题很熟悉,无论是平时的业务开发还是框架中间件都会用到,大部分都是基于JDK线程池ThreadPoolExecutor做的封装, 都会牵涉到这几个核心参数的设置:核心线程数,等待(任务)队列,最大线程数&am…

【Blog.Idp开源】支持在线密码找回

(一个做认证平台,必须会遇到的一个问题)BCVP框架,是基于:ASP.NETCore5.0VUE.jsIdentityServer4等核心技术,实现的前后端分离与动态认证鉴权一体化平台。01密码找回认证中心绕不开的话题Architecture Design.无论你是自…

我的狗丢了,所以我能加你微信吗? | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅(图源网络,侵权删)

将VC++6.0的代码迁移到VS2005常见问题总结(Window核心编程第五版以前代码在VS2005无法编译的解决方案)...

额喜新厌旧是男人的通病吧,可是呢VS2005的界面看着的确比VC6.0看着舒服,而且也算用习惯了吧。可是网上现在大部分C/C的代码还是用VC6.0的。这为我们这些菜鸟的学习之路增添了不少障碍,可能有很多朋友在这一步就放弃了吧或者抹黑走下去&#x…

被问到了!为什么一定要使用分布式,内行啊

一、为什么要使用分布式 如果需求要测试 4000 虚拟用户数,而本机只能支持1000 虚拟用户,如果测试结果有可能是电脑的问题,而不是服务器的问题,所以需要把其他虚拟用户分配到多台电脑上 把虚拟用户数分配到其他电脑上面去执行&am…

设计模式之享元

享元模式介绍享元模式主要在于共享通用对象,减少内存的使用,提升系统的访问效率。而这部分共享对象通常比较耗费内存或者需要查询大量接口或者使用数据库资源,因此统一抽离作为共享对象使用。在使用此模式过程中,需要使用享元工厂…

真正拉开人与人之间的差距是什么?

全世界只有3.14 % 的人关注了青少年数学之旅身边总有些人看上去很轻松,不仅在工作中游刃有余,还知识渊博,对各种事情有自己的思考。这样的人一定是天生的学霸吧。其实学习不一定要在教室里从一本书的第一页开始看,学习可以很轻松。…

[导入]【翻译】WF从入门到精通(第八章):调用外部方法及工作流

摘要: 学习完本章,你将掌握: 1.创建并调用你的工作流外部的本地数据服务 2.理解怎样使用接口来为宿主进程和你的工作流之间进行通信。 3.使用设计的外部方法在你的工作流和宿主应用程序之间传输数据。 4.在一个正执行的工作流中调用其它工作流 阅读全文…

(译)Windsor入门教程---第三部分 编写第一个Installer

原文:http://docs.castleproject.org/Windsor.Windsor-tutorial-ASP-NET-MVC-3-application-To-be-Seen.ashx 简介 在第二部分我们创建了控制器工厂。现在我们要把我们的控制器交给Windsor来管理。 Installer Windsor有一个专门的类installer.cs,用来向容…

在 ASP.NET Core 中使用 Serilog 使用 Fluentd 将日志写入 Elasticsearch

在 ASP.NET Core 中使用 Serilog 使用 Fluentd 将日志写入 Elasticsearch原文来自:https://andrewlock.net/writing-logs-to-elasticsearch-with-fluentd-using-serilog-in-asp-net-core/对于在 Kubernetes 中运行的应用程序,将日志消息存储在一个中心位…

2021年度最全面JVM虚拟机,类加载过程与类加载器

前言 类装载器子系统是JVM中非常重要的部分,是学习JVM绕不开的一关。 一般来说,Java 类的虚拟机使用 Java 方式如下: Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class …