近来把玩了两片制作极佳的中文电子佛典产品,一片是佛光山所出品的《
佛光大辞典》,一片是资功会所出品的《金刚经专集》,只是两者都给中
文造字档的安装程序打败了。「运气好」的人不会感觉到有何失败,但我
相信不少人的电脑状况不会这麽幸运,尤其是一些常玩电脑的人。如果尝
到失败了,可能是看不到造字(佛光大辞典),或者无法进行安装(金刚
经专集)。
对於一个不是专业的程式设计师,我以几近「土法炼钢」的方式,提出这
个问题的可能解决方式,希望对专精程式设计者能有一些参考价值。
我所用的方法,主要是在 reg档上面下功夫。WIN95 上面的 reg,是个纯
文字档,可以直接执行,但要非常小心,因为它会去修改系统的登录资料
(存在於system.dat、user.dat的设定值)。
乙、佛光大辞典
以下是《佛光大辞典》的eudc.reg(不包含每行前面的3个bytes,这些编
号是方便讨论用的):
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC]
4
5 [HKEY_CURRENT_USER\EUDC\950]
6 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
7
8 [HKEY_USERS\.Default\EUDC]
9
10 [HKEY_USERS\.Default\EUDC\950]
11 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
12
这个 reg档,其实只要保留1、2、5、6、12五行就可以了,或是保留1、2
、10、11、12五行也可以,其它的都可以删掉。因为3、8两行在这里没作
用;而只要5、6行产生作用,系统会马上自动更新10、11(反之亦然)。
所以5、6或10、11这两组保留一组就可以了。也就是说,可以精简为如下:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
5
以上这五行的作用,1、2、5是格式上必须如此。3、4是去设定系统所使
用的中文造字档,这里是想把造字档设定为"C:\\WINDOWS\\EUDC.TTE"。
位於WINDOWS目录下的 EUDC.TTE,是系统内定的造字档名称。当我们刚安
装好 WIN95,在还没有安装任何中文造字档,以及还没去造字程式执行
[档案]/[关联]/[不指定对应字体]/[确定]前,系统登录资讯是这样的:
[HKEY_CURRENT_USER\EUDC\950]
"SystemDefaultEUDCFont"=""
也就是系统尚未指定任何造字档。如果使用者的 WIN95系统属於这一类,
那麽佛光大辞典的造字档可以顺利安装,而且安装後马上可以看到造字。
但是,当我们不符合以上条件,已经安装过其它中文造字档,或是已经在
造字程式上执行过所说的步骤,那麽在要安装佛光大辞典前,这时系统登
录资讯可能是这样:
[HKEY_CURRENT_USER\EUDC\950]
"SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
系统已经有所指定。佛光大辞典在安装时,试图将原造字档易名,然後再
把自己的EUDC.TTE造字档覆盖上去。当要易名时却遭系统拒绝,因为这个
档案正在使用中,根本无法被易名或搬移或删除,可是安装程式并没有报
告出这项讯息,而继续它下面该完成的程序。但是,当您以後再以这片光
碟的 AUTORUN功能执行时,它每次都会问使用者要不要安装造字档(如果
已经安装好,是不会这样的)。若是把整片光碟内容复制到硬碟,执行
fkdict.exe却不会有询问安装造字档画面,大概是以 AUTORUN方式会进行
一些必要的检查吧!
丙、金刚经专集
资功会这片光碟是在WIN3.1环境上发展的,在光碟上找不到相关的 reg档
。但是,如前所述,若使用者的电脑环境够「幸运」,它会透过其它的方
式去修改系统登录档,在一次重开机後,即可顺利把造字档安装成功。
那麽,如果「不幸」呢?它会出现一个警告视窗——「EUDC.TTE档案无法
安装」,然後让使用者选择[异常终止]或[重试]或[略过];可是任你选择
哪一个,结果都是会再告诉你——「原造字档使用中,请重新开机後再行
安装」。待你重新开机,问题还是一样卡在那里,所以你根本无法玩这片
光碟。
丁、中国海字集
刚好我手上有一片轻松输入法 for windows95光碟,当中有个中国海字集
,也是个中文造字档。这片光碟里面有个Chinatte.reg,当中相关的段落
有以下七行:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "细明体"="C:\\CHINASEA\\cswsmin.tte"
5 "新细明体"="C:\\CHINASEA\\cswsmin.tte"
6 "楷体_GB2312"="C:\\CHINASEA\\cswkai.tte"
7
跟佛光山经过精简後的 reg档相比,多出三行,但少了下面这一行:
"SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
中国海这个 reg档的作用,它不管使用者原先在"SystemDefaultEUDCFont"
的设定为何,都予以保留,但加入了4、5、6三行,使得当系统欲显示"细
明体"、"新细明体"、"楷体_GB2312"时,会采用它的中国海造字。
假设我先安装好了佛光山造字,然後再安装中国海造字,那麽我这部份的
系统登录会变成如下:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
5 "细明体"="C:\\CHINASEA\\cswsmin.tte"
6 "新细明体"="C:\\CHINASEA\\cswsmin.tte"
7 "楷体_GB2312"="C:\\CHINASEA\\cswkai.tte"
8
这会造成什麽结果呢?系统同时采用了四个造字档,当遇到"细明体"造字
跟"新细明体"造字时即使用 cswsmin.tte,当遇到"楷体_GB2312"造字时即使用
cswkai.tte,当遇到不是以上三种字体时即使用EUDC.TTE(原佛光山造字
)。这种结果对佛光造字是不利的,因为一般使用者在执行《佛光大辞典
》时,会运用到字体大概都逃脱不了以上三种系统字型,所以使用者会发
觉大辞典应有的造字都被中国海造字取代了。
中国海字集这个方法值得学习,它不会有eudc.tte档案正在使用中而动弹
不得的情况。但是它有一个很大的缺点,当使用者不是使用以上三种字体
时,比如一般的排版作业,他所看到的造字可能就有问题了。
戊、另一种安装法
网友ChrisTorng曾提供一个cswsmin.reg供我参考:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="c:\\winfont\\cswsmin.TTE"
5
针对系统内定造字档,如果能像这样由使用者任意指定,那我们的问题就
简单多了。可是,经我的实验,做了以上设定後,只要使用者再去操作造
字程式後,马上就自动改回成:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
5
这样,原来所设定的造字档就用不到了。
己、一些可能的做法
综合以上讨论,可以了解,一个比较彻底的安装方法是:当欲对EUDC.TTE
进行汰旧换新时,安装程式要有办法解除旧EUDC.TTE正为系统使用中而不
可异动的限制。然後执行底下这样的一个 reg档:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
5 "细明体"=""
6 "新细明体"=""
7 "楷体_GB2312"=""
8
第 5、6、7行是为了解除类似上述中国海字集的设定,以免有装等於没装。
这样设定,如果是在一次开机内设定完成,而使用者的系统原有内定造字
档,那麽新的EUDC.TTE无法马上发生作用,也就是使用者在萤幕上看到的
是旧造字档。这可能是旧造字档在本次开机时已被系统所载入,使用者必
须等下一次重开机後才能达到预期目标。
如果在程式设计上无法控制系统对使用中档案的保护,也就是说无法在一
次开机中解决EUDC.TTE汰旧换新的问题,那麽倒是可以分两次来做。也就
是先执行类似以下的 reg:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="c:\\winfont\\cswsmin.TTE"
5
然後在重新开机後,这时候位於 WINDOWS目录下的原造字档EUDC.TTE就可
以顺利异动了,在处理玩旧档备份及新档覆盖後,即可以执行以下 reg:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
5 "细明体"=""
6 "新细明体"=""
7 "楷体_GB2312"=""
8
庚、一个比较可行的做法
如果觉得以上做法有所困难或略嫌麻烦,而我们也排除中国海字集那种轻
松做法,倒是可以试试以下这个设计流程:
一、先执行以下的1st.reg:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
5 "细明体"=""
6 "新细明体"=""
7 "楷体_GB2312"=""
8
针对原先系统并没有指定造字档的使用者而言,这样就有效了,且系
统马上就可以使用这个新造字档。
二、如果上述步骤执行时产生错误,则安装程式自动改成执行类似以下的
2nd.reg:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="c:\\winfont\\cswsmin.TTE"
5
如果因为系统对使用者造字档已先有所指定,那麽 1st.reg执行时会
产生错误。这时候我们改采这个 2nd.reg,目的在於暂时转移系统对
造字档的设定,以便在下次重开机时再执行 1st.reg。
当执行完 2nd.reg後,安装程式应出现一个警告视窗,请使用者关机
後再重新安装一次。当使用者听从指示,重新关机再安装,这时候
1st.reg 就可以执行无误了。
辛、结语
安装各种不同的中文造字档,是个不得已的手段。站在中文电子佛典的立
场,很希望有一共同造字档可以供大家采用。不然,像目前这样,当我把
《佛光大辞典》上面的资讯拷贝下来,这份资讯可以跟别人交换流通吗?
如果对方是采用《金刚经专集》或是其它的造字档,这份资讯是相当不可
靠的;因为同样的造字内码,却极可能对应出相异的造字字形。
本文主要是提供给程式设计者参考,一般使用者若有类似造字档无法安装
的困扰,底下这个方法应该也可以得到某种程度的解决:「请在 WIN95关
机时选择[重新启动在MS-DOS模式](不是一般在 WIN95里面的那个MS-DOS
视窗或全萤幕模式),然後备份旧造字档、复制新造字档,再执行EXIT指
令回到 WIN95即可。」
至於造字档的各个输入法要如何安装,请参考<关於中文造字档输入法在
WIN95 上的安装与解除>一文。
maha 7/7/97