AutoHotKey 可以判斷 Windows 版本是不是 Vista 或之後的版本,所以可以在安裝過程做這樣的判斷,把預先指定為微軟正黑的設
定蓋過去。
判定的方法為使用內建環境變數 A_OSVersion,如果是 Vista 或 Win7 的話,其值就會是 WIN_VISTA,否則就會是下列各
項其中之一:WIN_2003, WIN_XP, WIN_2000, WIN_NT4, WIN_95, WIN_98, WIN_ME
未來版本的 AutoHotKey 是否會讓 Win7 傳回不同的結果,還不知道;另外 Win8 會不會出現,也還不知道。因此安全的作法是這樣
寫:
if A_OSVersion not in
WIN_2003,WIN_XP,WIN_2000,WIN_NT4,WIN_95,WIN_98,WIN_ME
{
....
}
雖然 AutoHotKey 也可以用 IniWrite 來寫入設定檔,但是指定字型需要能寫入 UTF-8 字串,這部份 AutoHotKey
會有問題,所以只好還是用預先準備好的檔案來覆寫。
補綴套件則不做處理,因為使用者可能已經自己改過字型設定了。
可攜式套件因為可能拿去不同版本的 Windows 上面用,所以還是保持在新細明體比較安全。
%WinDir%\Fonts\MSJH.TTF
1. 預設用新細明體
2. 如果有微軟正黑體,就把繁體中文的網頁預設字型設成微軟正黑體
3. 承 2.,如果是 Vista / Win 7 的話,連程式介面的字型也設成微軟正黑體
Windows XP 不使用微軟正黑體當做程式介面字型的原因是 ClearType 沒有調教過的情況下,會很難閱讀,所以不適合當做預設值。
實際上的腳本會是這樣:
(已經把使用新細明體的設定檔案都複製好了)
==
; 不宜預設採用微軟正黑體作為介面字型的作業系統傳回值清單
OSVersionNoMSJHList =
WIN_2003,WIN_XP,WIN_2000,WIN_NT4,WIN_95,WIN_98,WIN_ME
; 檢查是否有微軟正黑體可用
IfExist, %WinDir%\Fonts\MSJH.TTF
{
; 根據作業系統版本,檢查介面字型是否宜採用微軟正黑體
if A_OSVersion in %OSVersionNoMSJHList%
{
FileCopyDir, FontsTweak\MingLiU-MSJH\ProgramFiles\Opera,
%OperaInstallPath%, 1
}
if A_OSVersion not in %OSVersionNoMSJHList%
{
FileCopyDir, FontsTweak\MSJH-MSJH\ProgramFiles\Opera,
%OperaInstallPath%, 1
}
}
==
另外,由於 Windows XP 對微軟正黑體的處理實在充滿變數,
所以最後決定多加一個使用者詢問,讓使用者選擇要不要用微軟正黑體。