您有新信

 
關於中文造字檔在WIN95上的安裝
#1
發信站: 國立中山大學網路組 Mailing List (tpts1.seed.net.tw>, 信區: BudaTech)
  近來把玩了兩片製作極佳的中文電子佛典產品,一片是佛光山所出品的《
  佛光大辭典》,一片是資功會所出品的《金剛經專集》,只是兩者都給中
  文造字檔的安裝程序打敗了。「運氣好」的人不會感覺到有何失敗,但我
  相信不少人的電腦狀況不會這麼幸運,尤其是一些常玩電腦的人。如果嘗
  到失敗了,可能是看不到造字(佛光大辭典),或者無法進行安裝(金剛
  經專集)。

  對於一個不是專業的程式設計師,我以幾近「土法煉鋼」的方式,提出這
  個問題的可能解決方式,希望對專精程式設計者能有一些參考價值。

  我所用的方法,主要是在 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
Mon Jul 7 12:00:10 1997
回覆 | 轉寄 | 返回

卍 台大獅子吼佛學專站  http://buddhaspace.org