2007年1月31日星期三

如何在XP中使用微软雅黑

虽然观感是很个人的问题,但中易宋体的内嵌点阵确实要比微软雅黑来得清晰锐利。不过微软雅黑的意义在于实现了中文字体的ClearType和平滑缩放,这却是中易宋不能比拟的优势。看久了,大概也就习惯了吧。

目前微软雅黑的版本窜到了5.0,但仍有不小改进空间。文字大小参差不齐的情况依然。中文数字“一”在连续出现时会连在一起,如“一一解决”看起来就是个破折号。最难看的是标点符号部分,尤其是左右单、双引号,两对符号形状完全一样,只是略为靠左或靠右。

想在XP中使用Vista的字体,网上流传的方法大多不太完整,要不就显得太为暴力。这里提供一个较为全面的方案,除了尽可能安全外,还解决了如日文和韩文乱码等问题。

首先需要获得Vista的内置字体,简体中文的字体名为微软雅黑,还有繁体中文的微软正黑,日文的Meiryo,韩文的Malgun。这几个字体目前最新的版本都是v5.00,HuangYongTao在他的Blog上有提供下载。

以下是各字体的文件名、文件大小和CRC值,如果已经从其他地方获得了字体文件,可查阅一下自己的是否是最新版本:

Update

v5.0版的韩文字体Malgun在资源管理器中显示的字符偏小,与雅黑和Meiryo配合不佳,不是经常用韩文的人就别装了吧。

网上出现了很多雅黑的修改版本,如碧海潮声的“雅黑宋体”和“极限雅黑”,都宣称解决了若干问题。好不好看大家可以试试,只要不是直接替换宋体的方式,都可以用我这里的脚本来安装,就是字体名需要修改一下。

Windows 7中包含了v6.01版的msyh.ttf和v6.02版的msyhbd.ttf。这个版本解决了姓名连字符“·”显示为方框的问题,降低破折号笔画高度以示与中文数字“一”的区别(但“一一说明”中的“一”还是连着的),似乎也部分解决了在XP中撑大对话框的问题。不过我总觉得这一版字体的颜色变淡了,另外标点符号也没有变化。

v6版雅黑我找到了一个Rayfile下载地址,这是一个安装包,即使系统内已存在雅黑也可以完成替换。如果不放心,也可以用7-Zip打开并解压缩手动安装。我想其他字体在Windows 7中应该也有更新的吧,等找到再说。

文件名尺寸CRC
v6.0X
msyh.ttf(6.01)21,719,9805C83D8E6
msyhbd.ttf(6.02)14,602,860C861592C
v5.0
msyh.ttf15,044,4408954581A
msyhbd.ttf14,685,87641CDF7AB
v5.0
msjh.ttf14,713,704A634C5A2
msjhbd.ttf14,509,688E9DA1497
v5.0
meiryo.ttc7,815,29279FA7E43
meiryob.ttc8,054,096C386FBC6
v5.0
malgun.ttf4,337,10465B587BE
malgunbd.ttf4,513,520F1F5ED97

将获得的字体放入C:\Windows\Fonts目录即可完成安装。除了微软雅黑外,其余字体并非必须。这里多嘴说一句,虽然微软正黑体中也包含了简体字,但由于该字体是根据台湾教育部标准字形进行制作的,笔画标准会与大陆通行的有所不同。因此并不建议以微软正黑作为日常使用的字体,尤其是不应该给在校学生使用。

然后打开控制面板,显示、外观、效果,将字体边缘平滑设为“清晰”,这是为了打开Windows的ClearType字体描绘功能。确定后在“高级”中将所有能改字体的项目都改为微软雅黑,字体尺寸可维持不变。再在IE菜单上选工具、Internet选项,常规页上选字体,将网页字体设为微软雅黑。

经过如上设置后,系统的大部分内容都会用微软雅黑进行描绘了。如觉得显示效果还不够理想,可在绿色下载站下载ClearType Tuning进行微调。如果链接失效,在搜索引擎里找“字体清晰工具”也能找到下载链接。个人觉得用这个工具将雅黑的黑度增加一些,看起来比较不会累。

接下来的设置就需要修改注册表了,如果这对你来说有点困难的话,可以在本文最后下载我写的修改脚本。

运行注册编辑器,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize,将GUIFont.Facename的键值改为微软雅黑。这一键值会影响部分通用GUI元素所使用的字体,例如按钮、记事本等等。

再定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink,新建一条名为“Microsoft YaHei”的多字符串值,将“gulim.ttc,gulim”和“MSGOTHIC.TTC,MS UI Gothic”以回车分隔写入。这里我懒得bq了,不明白的话参考同项中的Tahoma等字体的写法就知道了。

这一步类似于Linux中常说的字体替换,Gulim为XP附带的韩文字体。微软雅黑中并不包含所有的日文及韩文字符,如缺少了这一步,文件管理器中的日文及韩文文件名就会是方块。gulim.ttc和msgothic.ttc是XP附带的韩文和日文字体,当然也可以替换为Vista的Malgun和Meiryo。

如定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes,新建一个名为“宋体”的字符串值,并设置为“Microsoft YaHei”,可使系统在更多地方使用微软雅黑。例如登录界面中的“欢迎使用”四个大字,还有部分直接汉化EXE文件的程序。不过该方法仍然无法使系统全面使用微软雅黑,IE中还会出现宋体与微软雅黑相杂的情况,是否使用请自行选择。

另外还有HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Codepage下的932、936、949、950子键,这些子键控制了对应代码页下的默认文字字体,FixedWidthFont为等宽字体,ProportionalFont为矢量字体。936为简体中文代码页,可将对应键值改为微软雅黑。932是日文代码页,949是韩文代码页,950是繁体中文代码页。

最后是HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts下的23、24、25、26。这些子键控制了IE中声明了页面语言,但没有指定文字字体的页面用什么字体进行描绘,也就是对应繁体中文、日文、韩文的“默认字体”。实际上Internet选项中进行的修改,就是保存在这里。

以上这些就是我在注册表中找到的所有有关字体的设置。需要注意的是,即使进行了上述修改,也没办法做到使XP系统全面使用微软雅黑。因为只要该字体存在,部分在资源文件中指定使用宋体的程序,仍然不会用微软雅黑进行显示。

如果非要不可也有两个办法可以解决。一则是用字体编辑工具,将微软雅黑的字体名改为“宋体”,并删除系统中原来的simsun.ttc文件。不过这已经超过了本文所想涉及的范围,有兴趣的可以自己查阅相关信息试一下。第二个办法就是直接将simsun.ttc文件删掉。这个办法同样可以使几乎所有的文字用微软雅黑进行显示,不过后遗症是可能有部分文字会显示为方框。如何取舍,可以自己斟酌着办。

为了使用方便,我写了一个自动完成注册表的修改和恢复工作。如已安装了中日韩三地的四个字体文件,直接双击该脚本即可自动完成上述的所有修改工作。如想要恢复系统原始设置,用文本编辑器打开脚本,将bRestore设置为true并再次运行脚本即可。如果只想安装微软雅黑,也可以打开脚本编辑一下参数再运行。

sSC = "Microsoft YaHei"
sSCl = "微软雅黑"
sSCf = "msyh.ttf"

sTC = "Microsoft JhengHei"
sTCl = "微軟正黑體"
sTCf = "msjh.ttf"

sJP = "Meiryo"
sJPf = "meiryo.ttc"

sKR = "Malgun Gothic"
sKRf = "malgun.ttf"

bTC = 1 ' 是否安装了微软正黑字体,如否请将1改为0
bJP = 1 ' Meiryo,日文字体
bKR = 1 ' Malgun Gothic,韩文字体

bRestore = false ' 反安装则改为true

set oSh = wscript.createobject("WScript.Shell")
sub WriteReg()
  if bRestore then
    if sVal <> "" then
      oSh.run "reg add """ + sPath + """ /f /v """ + sKey + """ /t " + sType + " /d """ + sVal + """", 0
    else
      oSh.run "reg delete """ + sPath + """ /f /v """ + sKey + """", 0
    end if
  else
    oSh.run "reg add """ + sPath + """ /f /v """ + sKey + """ /t " + sType + " /d """ + sNVal + """", 0
  end if
end sub

' ========
sPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize"

sKey = "GUIFont.Facename"
sType = "REG_SZ"
sVal = "宋体"
sNVal = "微软雅黑"

call WriteReg
' ========
sPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes"

sKey = "宋体"
sType = "REG_SZ"
sVal = ""
sNVal = "Microsoft YaHei"

call WriteReg
' ========
sPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink"

sKey = "Microsoft YaHei"
sType = "REG_MULTI_SZ"
sVal = "gulim.ttc,gulim\0MSGOTHIC.TTC,MS UI Gothic\0mingliu.ttc,PMingLiU\0"
sNVal = ""
if bKR = 1 then
  sNVal = sNVal & "malgun.ttf,Malgun Gothic\0"
else
  sNVal = sNVal & "gulim.ttc,gulim\0"
end if
if bJP = 1 then
  sNVal = sNVal & "meiryo.ttc,Meiryo\0"
else
  sNVal = sNVal & "MSGOTHIC.TTC,MS UI Gothic\0"
end if
if bTC = 1 then
  sNVal = sNVal & "msjh.ttf,Microsoft JhengHei\0"
else
  sNVal = sNVal & "mingliu.ttc,PMingLiU\0"
end if

call WriteReg
' ========
sPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Codepage\932"

sKey = "FixedWidthFont"
sType = "REG_SZ"
sVal = "MS Gothic"
sNVal = "Meiryo"

if bJP = 1 then call WriteReg
' --------
sKey = "ProportionalFont"
sType = "REG_SZ"
sVal = "MS PGothic"
sNVal = "Meiryo"

if bJP = 1 then call WriteReg
' ========
sPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Codepage\936"

sKey = "FixedWidthFont"
sType = "REG_SZ"
sVal = "新宋体"
sNVal = "微软雅黑"

call WriteReg
' --------
sKey = "ProportionalFont"
sType = "REG_SZ"
sVal = "宋体"
sNVal = "微软雅黑"

call WriteReg
' ========
sPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Codepage\949"

sKey = "FixedWidthFont"
sType = "REG_SZ"
sVal = "GulimChe"
sNVal = "Malgun Gothic"

if bKR = 1 then call WriteReg
' --------
sKey = "ProportionalFont"
sType = "REG_SZ"
sVal = "Gulim"
sNVal = "Malgun Gothic"

if bKR = 1 then call WriteReg
' ========
sPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Codepage\950"

sKey = "FixedWidthFont"
sType = "REG_SZ"
sVal = "MingLiu"
sNVal = "Microsoft JhengHei"

if bTC = 1 then call WriteReg
' --------
sKey = "ProportionalFont"
sType = "REG_SZ"
sVal = "New MingLiu"
sNVal = "Microsoft JhengHei"

if bTC = 1 then call WriteReg
' ========
sPath = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts\23"

sKey = "IEFixedFontName"
sType = "REG_SZ"
sVal = "GulimChe"
sNVal = "Malgun Gothic"

if bKR = 1 then call WriteReg
' --------
sKey = "IEPropFontName"
sType = "REG_SZ"
sVal = "Gulim"
sNVal = "Malgun Gothic"

if bKR = 1 then call WriteReg
' ========
sPath = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts\24"

sKey = "IEFixedFontName"
sType = "REG_SZ"
sVal = "MS Gothic"
sNVal = "Meiryo"

if bJP = 1 then call WriteReg
' --------
sKey = "IEPropFontName"
sType = "REG_SZ"
sVal = "MS PGothic"
sNVal = "Meiryo"

if bJP = 1 then call WriteReg
' ========
sPath = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts\25"

sKey = "IEFixedFontName"
sType = "REG_SZ"
sVal = "MingLiu"
sNVal = "Microsoft JhengHei"

if bTC = 1 then call WriteReg
' --------
sKey = "IEPropFontName"
sType = "REG_SZ"
sVal = "New MingLiu"
sNVal = "Microsoft JhengHei"

if bTC = 1 then call WriteReg
' ========
sPath = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts\26"

sKey = "IEFixedFontName"
sType = "REG_SZ"
sVal = "新宋体"
sNVal = "微软雅黑"

call WriteReg
' --------
sKey = "IEPropFontName"
sType = "REG_SZ"
sVal = "宋体"
sNVal = "微软雅黑"

call WriteReg
' ========

2007年1月28日星期日

《战神》:好故事,虽然不太懂

最近没发现什么好玩的游戏,又把《God of War》翻出来了,正好还有个God难度没打过。一路都还算顺遂,可现在卡在Ares之战的第二场。看到网上有人说这里卡了两个月,所以我也不着急,慢慢磨吧。

能让我这种Light User拿起手柄挑战最高难度的五周目,《战神》当然很好玩。不过我想说的不是关卡设计或者打击手感什么的,我觉得更加难得的是,一个动作游戏还能编出个不错的故事来。

《战神》是一个18禁游戏,除了有暴力血腥的镜头以外,连故事情节都很少儿不宜。但没打过游戏的人也别误会,所谓“少儿不宜”,跟色情没什么关系。只因为这个游戏里没有所谓的好人,没有正义和邪恶的对决,一切的杀戮都显得毫无意义。

主角Kratos本来就是个嗜血的斯巴达人。当他在一次战斗中失败,面对敌人即将落下的斧头时,他大喊Ares的名字乞求帮助。Kratos得救了,并且从此成为了Ares的仆人。为了将战火献给他的主人,Kratos发动了一次又一次的战争。直到有一次,他在一个Athena的神庙中亲手杀死了自己的妻儿。Kratos陷入了痛苦中,并且从此不再侍奉Ares。游戏的主要流程,就是Kratos如何在Athena及Olympus众神的授意下杀死Ares的过程。

听起来是一个普通的复仇故事,顶多还有一层凡人弑神的含义,实际上并非如此。Kratos在杀死自己的妻儿之后,并没有主动开始仇恨Ares。他仅仅是本能地在痛苦着,但为什么痛苦,他自己并不知道。为了摆脱那个缠绕着他的梦魇,他纵情声色,企图忘掉过去,他侍奉众神,希望得到解脱,就这样过了十年。

会因为杀死妻儿感到痛苦,证明Kratos有着为人的基本良知,但也仅仅如此了。自己的妻儿是人,别人也是人,但在Kratos眼中却并非如此。为了前进,不管是人还是怪,杀戮对于Kratos来说很平常,反倒救人却只有在必要时才是值得做的事。说到底,Kratos是个没有人性,不会思考的杀戮机器而已。也就是因为这样,他才会一再被众神愚弄和利用。

在爱琴海上,Kratos诘问Athena何时才能让他脱离过去。可Athena向他要求了一个最终任务,杀死Ares,拯救她的城市。Athena向他承诺,完成任务之后,他所做的一切“will be forgiven”。一切结束之后,Athena又说:“众神承诺原谅你,因此你已经获得原谅了。可众神并没有承诺使你获得解脱。没有人,也没有神能忘掉你曾犯下的罪行。”

Kratos所乞求的对象,Olympus山上的众神,全是些无法领人信服的存在。Athena出面愚弄了Kratos,授意他杀死自己的兄弟Ares。Zeus、Poseidon、Hades、Artemis,甚至Ares的情人Aphrodite都来帮助Kratos完成任务。“Go With Gods, Kratos. Go force, in the name of Olympus.”听起来很蛊惑人,可众神都跟Ares作对,是为什么?

游戏没有交待,我也不愿轻易以为,众神只是为了阻止Ares的战火蔓延在世界上。最终之战以前,Ares对着天空喊了一段话,听起来不过是个不得父亲宠爱的孩子在抱怨着。而将Kratos从冥界带回来的老人是谁?神殿前使妻儿的灰烬覆着在Kratos皮肤上的老妇又是谁?不负责地猜测一下,前者恐怕是Zeus,后者就是Athena本人。

Kratos并不明白,究竟是什么使自己如此痛苦。过去的事已然发生,那就永远存在。神并不是值得依靠和寄望的对象。从一开始就注定了,一切的乞求都是无谓的。能够原谅自己的,只有自己。但他却从一个极端走向另一个极端,他选择了自杀。

如果要自杀的话,何苦等待这十年?在那个存在冥界的世界里,死亡真的能带来解脱么?可笑的是,众神连死亡的权利都不给他。Athena说众神不会允许一个曾帮助他们的人死于自己的手,而且Olympus山上也需要一位新的战神,他们要Kratos坐在那个位置上。

我不理解为什么Kratos会顺从众神的安排。跟某人聊起时,他说一个曾经自杀的人,获救以后万念俱灰,会有一种无可无不可的心态。我无法接受这种解释,我只能说,Olympus山是个自私之地,Kratos也是个无可救药的可怜人。

附:

东西没写完,游戏却打完了,看来我运气还不错……

Ares之战分三场,能以God难度打到这里的人肯定都经历过了。第一场是最简单的,放一个Army of Hades然后L3+R3,整个神化过程中能召唤三次Hades的军队。完成了Ares的血槽也差不多见底了,运气好MP也能补满。如果不满,Ares头上冒圈后与他较力,等爬到Ares背上时故意按错键会被甩下来,几乎不扣HP。这时冲上去猛攻,Ares再次冒圈就能补充HP和MP了。在进入第二场之前,必须保证自己的HP和MP都是满的。

第二场最难,而且过关需要点RP。作战的基本思想是保护自己优先于保护妻儿,拖延使用MP的时间。比较有利的位置是妻儿的右边,镜头的左边。主力技是链刃的□□△,最理想的状态是将敌人都引到镜头右边,每次□□△都能使全部敌人倒地。镜头左边如有敌人,数量也不能超过一个。需要注意防御,防御成功就用□键将敌人弹开。如果在屋顶被掀开以后,自己的HP没什么损失,妻儿的HP还有一半以上,MP也没用过,第一阶段作战就算成功。

屋顶被掀开以后战斗进入第二阶段。画面后方出现的弓箭手的攻击因为有神坛阻挡,可以不用管。当妻儿HP损失一半以上时,就可以考虑使用一次Army of Hades了。当妻儿HP减到只剩五分之一左右,神化。Army of Hades及Poseidon's Rage交替使用,手快的话,结束神化状态以前还能召唤第三次Hades的军队。这时妻儿的HP也差不多见红了,在有Hades的军队的保护下,冲上去按住○为妻儿补充HP。将妻儿HP补满,神化槽也能补充过半。这时自己的HP和MP也应该有一半左右,继续牵制敌人。

当出现手拿Artemis之刃的敌人时,战斗进入第三阶段。这时如果神化槽还没满,召唤Hades的军队,给妻儿补血并补满神化槽。Artemis之刃对付妻儿几乎是秒杀,眼见不对立刻神化,依旧是Army of Hades及Poseidon's Rage交替使用。如果之前的战斗顺利的话,神化未结束战斗就结束了。

即使没有也不要慌,每一个敌人出现点会出现的敌人都是固定的。如果先把某个出现点的敌人干光,之后这个点就不会再有敌人冒出来。如果到山穷水尽的地步了,场地上的敌人也不超过两个时,那还有一拼的可能,只要坚持就有希望。

第三场相比第二场就容易得多,只需要多一点点的耐心就可以,而且有一个诀窍可以迅速解决战斗。Ares除了魔法,近身攻击有两种,防御不能技只能跑,可防御技在躲过后,Ares会大喊一声,触角也会立起来,这是攻击的大好机会。如果此时Kratos离Ares较近,冲上去□键,如未打中就R3跑掉。如命中,连按△键重攻击。在4连击达成时,几乎100%会形成较力。只要赢了,就能砍掉Ares不少HP,而且Ares还会有很长时间的硬直。重复这个过程,较力两次就能把Ares干掉。

2007年1月26日星期五

智能ABC之后

Vista拿掉了智能ABC,很多人都不满意,包括我在内。于是网上开始流传着“Vista版智能ABC”,以及关闭IE7保护模式的方法。可排除了个人情绪之后,我也只能说,这怪不了微软。

在微软主页上我翻到了一条旧闻,标题是《国家有关部门与微软签署Windows 95™中文版项目标准规划合作协议书》。其中有这么两句:“Windows 95™中文版将选择全国信息技术标准化委员会推荐的标准规划化中文字和规划化中文输入法。该委员会将根据中国政府有关部门的规定,以合理的方式和价格向微软进行技术转让。”

大家都知道,Win95中除了拼音、区位之类几乎没什么实用性的输入法外,主要附带的输入法就是智能ABC和郑码两种。前者的开发者为北京大学朱守涛,后者的版权则属于北京中易电子公司。两者与信标委应该都不存在上下级关系,“该委员会……向微软进行技术转让”不知从何谈起,想来无非也就是“政府协调”吧。

这桩生意大概不会为朱守涛和中易公司带来多大收益,“合理的方式”肯定不会是按拷贝计算版权金。至于一次性技术转让费能有多少,想想甲方是谁也知道不会多。而且相比中易公司,朱守涛先生在这桩买卖里所处的位置更为不利。

汉语拼音不可能申请专利,而郑码显然是有专利的。但像v键前导临时输入英文字符,i键前导输入高频字和大写数字一类的功能,专利局还是有可能会受理的。可朱守涛先生有没有试图申请?还是微软连这一步也事先想到了,已经获得了专利授权?总之以结果来看,微软想踢开中易做出一个“微软郑码”并不可能,但微软拼音中出现一个“智能ABC模式”已经成为了现实。

说到这里,似乎我是在为智能ABC叫屈,其实并非如此。要知道,一众扇子对于智能ABC的依赖,除了附加功能和输入风格外,最重要的就是字词排序。而由第三方实现一个智能ABC的完全克隆,显然没有可能。只要智能ABC继续开发,凭借多年来预装地位所带来的用户惯性,即使Vista拿掉智能ABC,保有相当市场份额也不是难事。实际上并不是用户放弃了智能ABC,而是智能ABC放弃了自己。

无法删除错误的自造词,自造词达到上限造成出错,v模式bug引起软件不正常退出,一直以来智能ABC都有些不大不小的毛病。随着Windows的升级,这些毛病不但没有修正,反而还越来越多。直至Win2k中那种既非宋体又非仿宋体的候选字字体出现,我甚至有点怀疑,这是故意的。

到WinXP推出,包括难看的字体在内,问题依旧还摆在那里。这些时间智能ABC的开发者都干什么去了?办了家叫阳宁的公司,卖了份授权给中科红旗和华镭,还开发了一个“智能ABC袖珍版”——只是没见到有什么手机、PDA、机顶盒用过。

一直到2004年11月7日,Windows的智能ABC才更新到了v5.22版。字体总算改过来了,而且终于可以输入那个著名的“镕”字了。不但如此,像“嗯”、“瓩”这一类字,也可以按照正确的读音进行输入,算是一个值得骄傲的新特性。然而原本存在的某些问题依旧存在,还引入了新的问题——cmd.exe窗口中候选字序列消失了。并且这是一个要卖38元的共享版本,安装包中还附送了两个俗称流氓软件的插件。

要不要卖钱是软件作者自己有权决定的事,可安装包里还捆了别的东西,这种行为也太小气点了吧。原本正常使用的功能突然消失,是测试问题,还是cmd.exe高手向,没几个人用?我无语。

从1994年的Windows 3.2,到2003年的Windows Server 2003,智能ABC作为Windows的预装输入法有近十年时间。我还曾经寄望于Vista中的智能ABC,可从那充满死链的官网来看,这个输入法恐怕很难再有下一个版本了。说再见的时候到了么,我有一种被甩掉的感觉。

煽情一把,留个纪念:

Windows 3.2
v3.10.147
Windows 98SE
v4.00.950
Windows 2000
v5.00.2190.1
Windows XP
v5.1.2600.0
Windows Server 2003
v5.2.3790.0
znABC v5.22a
v5.22.216