近來把玩了兩片製作極佳的中文電子佛典產品,一片是佛光山所出品的《
佛光大辭典》,一片是資功會所出品的《金剛經專集》,只是兩者都給中
文造字檔的安裝程序打敗了。「運氣好」的人不會感覺到有何失敗,但我
相信不少人的電腦狀況不會這麼幸運,尤其是一些常玩電腦的人。如果嘗
到失敗了,可能是看不到造字(佛光大辭典),或者無法進行安裝(金剛
經專集)。
對於一個不是專業的程式設計師,我以幾近「土法煉鋼」的方式,提出這
個問題的可能解決方式,希望對專精程式設計者能有一些參考價值。
我所用的方法,主要是在 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 "標楷體"="C:\\CHINASEA\\cswkai.tte"
7
跟佛光山經過精簡後的 reg檔相比,多出三行,但少了下面這一行:
"SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
中國海這個 reg檔的作用,它不管使用者原先在"SystemDefaultEUDCFont"
的設定為何,都予以保留,但加入了4、5、6三行,使得當系統欲顯示"細
明體"、"新細明體"、"標楷體"時,會採用它的中國海造字。
假設我先安裝好了佛光山造字,然後再安裝中國海造字,那麼我這部份的
系統登錄會變成如下:
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 "標楷體"="C:\\CHINASEA\\cswkai.tte"
8
這會造成什麼結果呢?系統同時採用了四個造字檔,當遇到"細明體"造字
跟"新細明體"造字時即使用 cswsmin.tte,當遇到"標楷體"造字時即使用
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 "標楷體"=""
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 "標楷體"=""
8
庚、一個比較可行的做法
如果覺得以上做法有所困難或略嫌麻煩,而我們也排除中國海字集那種輕
鬆做法,倒是可以試試以下這個設計流程:
一、先執行以下的1st.reg:
1 REGEDIT4
2
3 [HKEY_CURRENT_USER\EUDC\950]
4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
5 "細明體"=""
6 "新細明體"=""
7 "標楷體"=""
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