FontMod字體外掛軟件是一個用于修改老win32系統(tǒng)應用程序字體的動態(tài)鏈接庫,win32上的一些老應用程序沒有對中文進行「特色優(yōu)化」,這會導致系統(tǒng)將中文等 CJK 字符渲染為萬惡的「中易宋體」。這里西西推薦大家使用這個FontMod來修改win32老應用字體,還是非常管用的。
工作原理介紹:
事實上,F(xiàn)ontMod 的工作原理非常簡單易懂,和一些游戲外掛的原理類似。我們可以這樣理解:FontMod 就是一個專門修改應用程序字體「外掛」,都是利用在原有程序的執(zhí)行的基礎之上,加載我們自己的 DLL。那么,這樣的話,我們就可以在 DLL 中將應用程序字體渲染的部分邏輯進行修改,使得應用程序使用我們指定的字體進行顯示。
FontMod 的大致工作原理
不過,值得注意的是,DLL 注入和「游戲外掛」一樣,實際上都非常危險,能夠將原先安全的應用程序核心數(shù)據(jù)進行篡改。如果 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 客戶端,很可能出現(xiàn)報錯,提示你未找到一個名叫 FontMod.yaml 的文件。不必擔心,這是正�,F(xiàn)象。
Mendeley 默認安裝位置位于 Windows C 盤的 Program Files 目錄下,這一目錄需要管理員權限才能創(chuàng)建文件,因此上一步中 FontMod 沒有將自己的配置文件在第一次運行時成功創(chuàng)建,導致報錯。我們需要在 Mendeley 的這一安裝目錄下手動創(chuàng)建一個名為 FontMod.yaml 的文件作為配置文件。
另外,如果你打開之后發(fā)現(xiàn)沒有什么問題,那么很可能就是 FontMod 為我們創(chuàng)建好了這一文件,我們繼續(xù)接下來的工作即可。