Coder

编程,

 

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

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

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

    一、为什么我喜欢制作成汉化补丁?
    这个问题与本主题无关,论坛中也有不少对补丁和安装包的讨论,在此,我声明我对汉化补丁情有独钟,不少要求我制作安装包的朋友希望能看到此文。
    其实执有此观点的朋友也不少,如乾、曾经的 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

posted on 2006-08-11 09:08  雪域阳光  阅读(4174)  评论(1编辑  收藏  举报

导航