·汉化新世纪 ·汉化新世纪论坛 ·百家争鸣 ·论坛集萃 ·汉化问答 ·软件介绍
文章首页 >> 汉化教学 >> 工具使用 >> 怎样用 Wise Installation System 制作汉化补丁?    Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎

怎样用 Wise Installation System 制作汉化补丁?

作者: 莫名 来源:汉化教学 时间:2003-11-14 点击:26531

    一、为什么我喜欢制作成汉化补丁?
    这个问题与本主题无关,论坛中也有不少对补丁和安装包的讨论,在此,我声明我对汉化补丁情有独钟,不少要求我制作安装包的朋友希望能看到此文。
    其实执有此观点的朋友也不少,如乾、曾经的 YY (现在不知会用什么 ID 出现了),特别是乾,一直呼吁用汉化补丁。
    汉化补丁 VS 汉化包,有诸多好处:
    1.体积小。
    2.对版本校验严格,略有更改便六新不认。这一点有不少朋友并不喜欢,没办法,补丁必须忠实于原版,是原版的外挂(?),如果离开原版支持的汉化补丁还留在你的硬盘中,那是你嫌硬盘太大。我汉化 ACDSee 后,看到不少“我为什么不能汉化”的求助,这当然是因为版本不对造成的,如果做成安装包,不同版本汉化成功而不出问题,那是我前几天烧香的结果,有问题了,就算别人能理解,自已都要骂自己,不要认为汉化说明写清楚了就行了,试问看这篇文章的朋友有几个会去仔细阅读?即使读了,一些较菜的朋友也不懂什么就改注册表,什么中寻找安装目录)。所以我做的汉化补丁都不带汉化说明。
    3.版权问题。补丁是擦边球,安装版就不知道是什么了......不多说了。

     二、为什么要用 Wise 制作汉化补丁?
    乾提到,现在的专业制作补丁的工具功能太弱,比如多目录安装、注册表操作、 INI 文件操作、文件重新命名等,一般的补丁制作程序都无能为力。
    我们再来看一下近期推出的软件安装后对系统的一些操作,前几年,补丁制作比较简单,一般都是对同一目录下的一个或多个文件进行汉化即可,基本上其它操作不多,但现在推出的软件,已经在注册表、系统目录或其它公共文件夹中安装夹中安家,对制作的汉化补丁提出了更高的要求,乾提出的捆绑,也是一个方法,但总觉得有点不爽。下面就我最近汉化的几个软件需要操作的、普通补丁工具未提供此功能的动作罗列一下:
    1.注册表键、键值修改、删除,如 ACDSee、SnagIt。
    2.多目录安装,如 ACDSee,我定义了三个目录,均从注册表中读取。
    3.重命名文件或文件夹,一般来说用于汉化一些模板之类的名字,如 SnagIt、ICQ。
    4.判断安装模式 (典型安装、自定义安装),如 ACDSee、SnagIt。
    5.对正在使用的文件处理。如 ACDSee、SnagIt,如果原程序正在使用,不允许汉化,各位可以下载我的汉化补丁一试。
    6.定制汉化,也象安装程序一样,让用户选择是否操作,如 ACDSee,其中有一对话框会让用
户选择是否删除数据库。
    7........还没有用到,请补充。
    现在朋友们应该明白我为什么推荐用 Wise Installation System 了吧?因为 Wise 能实现上述功能。当然使用上稍微麻烦一点,但绝不是复杂,它提供的强大的安装专家模式和非常直观的脚本编辑,很快就能上手。如果你有兴趣,还可以定制对话框,使你的补丁更个性化。另外,Wise 相对其它补丁工具有以下特点:
    1.压缩速度非常快,不会出现象某些补丁在制作较多文件补丁时几乎象停止响应的现象。
    2.压缩率非常高。为什么说非常?因为我发现只有 Patch Factory 可与它相比,但有个问题,Wise 是专业的安装程序制作工具,文件头比较大 (不带卸载程序大概有 130 K),但如果要汉化的文件较多,生成的补丁绝对很小,如 ACDSee,几十个文件也只用了不到 400 K)。
    3.定制功能强,专业安装程序制作功能能用的,在补丁中都能用,Wise 也可以说是史上最强的安装开始工具之一 (请原谅我用了史上最强这四个字,虽然并不喜欢)。
    以上跑题很多,旨在向大家推荐一款高级的补丁制作工具,使我们的补丁做得更好。下面言归正传,具体制作方法不详细展开,在安装专业界面中有很多的提示,主要用提问方式。如果朋友们有问题或更好的办法,敬请告之。

    三、如果用 Wise 制作补丁?
    制作补丁也用 Wise 制作安装程序一样,在安装专家向导页中从头到脚定义好你要安装的文件,制作补丁只不过比制作安装包多了一步,在“安装专家”页中点“SmartPatch”,在下图中圈示的地方添加一个原版程序的目录。这样 Wise 在制作安装程序时会比较两个文件夹中的文件,制作出来的就是我们所说的补丁了。
    注意:这个目录的结构要与你在文件中选取的文件夹结构要一样。如果我要安装在不同的目录,在此页面可以先放置在同一目录下,然后到脚本中再进行修改。
 

 

    四、如何获取安装路径?
    既然是汉化补丁,肯定要根据原版的安装路径来确定汉化路径,Wise 提供了强大的查找定位功能。在“安装专家”页中点击“目标系统”中的“系统搜索”,点击“添加”按钮,下拉菜单中有三项:查找文件、读取 INI 值、读取注册表值。
    一般来说,现在的软件安装位置都能在注册表中找到,操作也很简单。如果你要读取多个路径,可以在脚本任意位置插入“获取注册表键值”动作,然后定义到自定义变量中供安装时使用。Wise 在安装过程中,总是根据脚本从头到尾顺序开始,因此你可以任意调整安装文件的位置,甚至在欢迎对话框出来之前就可以安装。但有一点要注意,定义变量一定要在使用变量之前。


如果注册表不存在安装路径,INI 文件也找不到,那就选用第一项:查找文件,让补丁程序在你的硬盘中从头到脚查找要汉化的文件,不可能找不到吧?找到后,安装程序会自动将该文件所在路径作为补丁路径。
 

 

     五、如何实现多目录安装?
    在定义好安装的文件后,切换到脚本编辑器窗口,可以看到“安装文件: ......”段,如果只需要修改已经在队列中的文件安装路径,只需要在该句双击,弹出如下对话框:

    此时就可以任意修改圈中安装路径了。Wise 中已经定义了许多路径变量,一般的系统路径都可以找到,下面是我们经常性用到的几个变量: (注意: Wise 中变量都是用两个 % 围绕,如果你在脚本或文字中要用到“%”,请用“%%”代替,否则它会认为这是变量。)
    %MAINDIR%  你在安装路径中选取的路径,如果使用了系统搜索,搜索到的路径也放置到这个变量中。
    %WIN%  Windows 目录,在 Windows 2000 下一般为 WINNT
    %PROGRAM_FILES% PROGRAM FILES 路径
    %COMMON%  PROGRAM FILES\Common Files 路径
    %SYS%  Windows 目录下的 System 路径,Windwos 2000 以上为 System32
    如果你要安装在其它自定义路径,你可以自己设置一个变量,从注册表读取或从其它方法获取。
    如果文件列表中没有找到文件,请单击左侧“动作”列表中的“安装文件”添加。

 

    六、如果修改、添加、删除注册表键或值?
    修改、添加、删除注册表键或值在安装专家和脚本编辑窗口均可实现。在“安装专家”中,单击“安装程序详细资料”中的“注册表”,可以选择自己创建或从注册表文件 (.reg) 中导入。

    
    如果我想将 HKEY_CURRENT_USER\Software\TechSmith\SnagIt\7\Groups 键 (上图红圈中的键) 下面的所有内容包括这个键名一起删除该如何操作呢?点击 Groups,在右下窗格中点击 ,然后单击“详情”按钮,弹出如下对话框,从下拉框中选取“删除键及所有子键”即可。这一方法比较有用,现在有很多软件将菜单等资源以二进制形式加到注册表中,删除后会自动重建,省了很多麻烦。

 

 

    七、如何实现条件判断?
    不用怕,即使你没学过编程也没关系,if 和 Else 总看得懂吧?将这个问题提到前面,是因为在 Wise 很多操作都需要这两个语句配合。只要你学会使用下图中红色区域中的几个语句,就能解决大部分问题了。

    图中黄色加亮的几个语句意思就是如果变量 DOBRAND=1,那么编辑 1.ini,否则编辑 2.ini。注意: 有 if 后面一定要跟 end。当然 if 后面有许多选项可以选择。
   

    八、如何识别已安装的软件的版本?
    这一条并不重要,但我们可以控制原版软件版本是否相符,然后在用 if 语句决定是否继续进行操作。因为 Wise 不是专门用来制作补丁的程序,在执行补丁时是通过校验一个补丁一个,而不是专业补丁制作工具可以先校验全部文件,然后得出一个报告。Wise 在已经补丁了几个文件后发现某个文件版本不符或被修改,会出错退出。因此可以使用此办法使问题尽量能够解决。在脚本编辑器中动作栏双击“获取系统信息”,自定义一个变量。这个动作是相当有用的,在“检索”下拉框中可以发现许多项目,比如 Windows 版本号。
 

 

    九、如何判断文件是否在使用或不存在?
    在脚本编辑器中双击“检查使用中文件”动作,随便自定义一个变量,此时变量会返回三个值:
    In-Use  表示文件正在使用
    Not In-Use  表示文件未在使用,可以执行汉化
    Non-Existant 表示不存在这个文件
    使用上面几个返回的值,再用 if,就可以提示用户文件关闭文件。因为 Wise 对正在使用的文件也可以执行汉化 (不会出错,但会要求重新启动电脑),如果文件名是标准的 Dos 8.3 格式,则问题不大,但如果是长文件名,重新启动会变成 8.3 格式,导致软件被破坏。
    我们还可以使用返回 Non-Existant 来判断原版安装时是否使用了自定义安装。下图中就是先看 Studio.exe 是否存在,然后判断你是否安装了 Studio 这个组件。
 

 

    十、如果重新命名文件或文件夹?
    很简单,在脚本编辑器中双击“重命名文件/文件夹”动作,图中就是要将 Addin.dll 文件重命名为 e.dll,文件夹操作相同,注意,在上面的对象中应填写完整路径 (可以是变量),但下面对象只需填写重命名后的文件名即可。

 

    十一、脚本编辑器中有一个“向导循环”有什么用处?
    “向导循环”表示在这个循环圈中的对话框可以按“上一步”“下一步”进行切换,当然你也可以在一定条件下跳过某个对话框。我近段时间制作的补丁中经常使用这个功能,比如 SnagIt,用过的朋友会发现不会出现安装路径对话框,这并不是我未使用这个对话框,其实是在已经找到的情况下将其跳过,如果在没有找到安装路径的情况下,它还是会出现的。


    现在我们双击“向导循环”这一句,弹出对话框,就可以看到如果变量 AAA 不等于 Non-Existant,也就是说某个文件存在,则跳过这个对话框,否则则显示。
   

    “向导循环”可以在多个位置中使用。

     十二、如何显示、隐藏和屏蔽对话框中的控件?
    这个功能对于汉化可有可无,在这里做介绍主要想介绍一下对话框中内部的脚本编辑,使能够做出功能更强的补丁。在上面选择安装目录中的那张图可以看到,里面有一句“在你选定的安装目录中没有找到要汉化的文件”这句话,还有一个“下一步”按钮是灰色的,如果你选择正确目录后,上述这句话消失,“下一步”按钮可用。以“下一步”按钮为例,先在对话框编辑器中双击“下一步”按钮调出控件设置对话框,给“下一步”按钮取个名字供脚本调用。


    然后选择菜单“查看--对话框脚本编辑器”,双击动作列表中的“检查文件目录是否存在”,设置见图。


    然后就可以双击“设置控件属性”进行设置了。


    如果结合上述“向导循环”、“检查使用中的文件”和 if 语句,可以取得下列效果,可以通过按“重试”按钮进行刷新。
 

 

    十三、如何在文本文件中添加文本?
    因为在汉化后重新命名了一些文件,我希望在卸载时将这些文件自动卸载,刚好该软件的卸载记录是文本文件,那么可以双击动作列表中的“插入行到文本文件”动作进行编辑。
 

 

    以上简单地介绍了一下在用 Wise 制作汉化补丁时会用到的功能,与其它补丁工具相比,操作稍复杂,下面介绍一下制作时要注意的事项。
    一般作为补丁,不需要卸载程序,在安装专家窗口,单击“目标系统”、“卸载”,在左侧选中“不添加卸载支持即可”。如果还想试一下让 Wise 自动关闭正在运行的软件,可以参考一下 Wise 附带的示例文件 Application kill.wse。
    为使补丁能好看一点,我们需要对界面进行定制,在对话框编辑器中可以很方便地进行修改,插入图片、使用强调文本,甚至插入视频。在“编译设置”中可以选择补丁程序的图标 (可惜不支持真彩色),在“进度条”中可以选择闪屏。
    下面是我对补丁工具和 Wise 制作补丁的对比数据,供大家参考。补丁工具分别是 Patch Maker 和 Wise 9.01 (9.02 版本文件头较大,不适合做补丁),全部默认向导方式。制作补丁的软件是 ACDSee.exe 一个文件5.12M,结果如下:

 

工具名   文件头大小 补丁大小 所需时间
Patch Maker  78K 694K 很长
Wise   132K 201K 短,以秒计
 

附莫名提供的相关脚本示范:SnagIt.rar

汉化新世纪 责任编辑: 莫名 .:|:. 标签(Tag): Wise 补丁

·上一篇: 依照習慣和依照英文的正確性,何者為重 ·下一篇: 程序中如何简单获得API的调用地址及如何添加API函数

· 版权申明: 本文引自《汉化教学》,如有版权疑问请及时联系本站,以便本站处理。

· 转载申明: 本文引自《汉化教学》[ 作者: 莫名],如需转载请直接联系原始作者,并请注明原始出处。

相关文章                                                                                发表评论 打印此文 关闭窗口

| 设为首页 | 加入收藏 | 联系我们 | 友情链接
Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎
本站内容,除转载或版权特别申明的内容外,皆遵守 创造共用协议中文版之“署名-非商业性使用-禁止演绎 2.5 中国大陆”条款
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 China License.
本网站内容源自汉化新世纪论坛的摘录和汉化新世纪成员的原创文章。
凡汉化新世纪论坛的文字皆默认为汉化新世纪与原作者共同拥有并授权发布。
如对本站发布文章有所异议请来信告知,我们将及时删除。
凡商业摘录本站文字请先与我们联系,本站将保留非授权商业发布的追究权利。
凡非商业摘录本站文字请明显注明出处和原作者,并不得改动,凡改动必先征求原作者同意。
苏ICP备05002283号