FontMod是修改老win32系統應用程序字體的dll文件,win32上的一些老應用程序沒有對中文進行「特色優(yōu)化」,這會導致系統將中文等CJK字符渲染為萬惡的「中易宋體」,使用FontMod可以避免出現這個問題!
軟件介紹
事實上,FontMod 的工作原理非常簡單易懂,和一些游戲外掛的原理類似。我們可以這樣理解:FontMod 就是一個專門修改應用程序字體「外掛」,都是利用在原有程序的執(zhí)行的基礎之上,加載我們自己的 DLL。那么,這樣的話,我們就可以在 DLL 中將應用程序字體渲染的部分邏輯進行修改,使得應用程序使用我們指定的字體進行顯示。
FontMod 的大致工作原理
不過,值得注意的是,DLL 注入和「游戲外掛」一樣,實際上都非常危險,能夠將原先安全的應用程序核心數據進行篡改。如果 FontMod 不是一款開源軟件,那么我是不會使用它,也不會推薦給大家使用。
使用方法
Mendeley 是一個學術文獻的管理應用,其客戶端 Mendeley Desktop 應該是直接利用 Qt 編寫的。另外,Mendeley 也不負眾望,其客戶端就連英文字體都渲染成了「中易宋體」… ??? 我們以 Mendeley 為例子,具體介紹如何將 FontMod 掛載到主應用程序上,使之生效。
找到目標程序的安裝目錄
首先,我們需要找到 Mendeley 的安裝目錄。在 Windows 的開始菜單,右鍵點擊 Mendeley,選擇「更多 ? 打開文件位置」,在打開的目錄下選擇 Mendeley 的快捷方式,再次右鍵,選擇「打開文件所在位置」,不出意外的話,我們就進入了 Mendeley 的安裝目錄。
找到 Mendeley 的安裝目錄
仔細觀察,我們可以看到 MendeleyDesktop.exe 這一可執(zhí)行文件,也就是我們 Mendeley 客戶端的本體。另外,下方還有一些帶有 Qt 字樣的 DLL 文件的蛛絲馬跡,這些線索表明 Mendeley 客戶端很大可能是直接使用跨平臺 UI 框架 Qt 編寫的,驗證了我們的猜想。
接下來,我們拿到剛剛下載好,并更改名稱為 winmm.dll 的 FontMod 文件,進行掛載的工作。
讓 FontMod 掛載目標程序
我們將 winmm.dll 直接復制進入剛剛的 Mendeley 安裝目錄下,這一步驟可能需要「管理員權限」,如果提醒我們,點擊授權即可。此時,如果我們嘗試雙擊 MendeleyDesktop.exe 打開 Mendeley 客戶端,很可能出現報錯,提示你未找到一個名叫 FontMod.yaml 的文件。不必擔心,這是正?,F象。
Mendeley 默認安裝位置位于 Windows C 盤的 Program Files 目錄下,這一目錄需要管理員權限才能創(chuàng)建文件,因此上一步中 FontMod 沒有將自己的配置文件在第一次運行時成功創(chuàng)建,導致報錯。我們需要在 Mendeley 的這一安裝目錄下手動創(chuàng)建一個名為 FontMod.yaml 的文件作為配置文件。
另外,如果你打開之后發(fā)現沒有什么問題,那么很可能就是 FontMod 為我們創(chuàng)建好了這一文件,我們繼續(xù)接下來的工作即可。