应用简介
FontMod就是一个专门修改应用程序字体插件,利用在原有程序的执行的基础之上,在软件中加载我们自己的 DLL。那么,这样的话,我们就可以在DLL中将应用程序字体渲染的部分逻辑进行修改,使得应用程序使用我们指定的字体进行显示。
win32上的一些老应用程序没有对中文文字进行相关的显示优化,这会导致系统将中文等CJK字符渲染为万恶的中易宋体,使其看上去非常的难受,使用FontMod可以避免出现这个问题!
【使用说明】
Mendeley 是一个学术文献的管理应用,其客户端 Mendeley Desktop 应该是直接利用 Qt 编写的。另外,Mendeley 也不负众望,其客户端就连英文字体都渲染成了「中易宋体」… ??? 我们以 Mendeley 为例子,具体介绍如何将 FontMod 挂载到主应用程序上,使之生效。
仔细观察,我们可以看到 MendeleyDesktop.exe 这一可执行文件,也就是我们 Mendeley 客户端的本体。另外,下方还有一些带有 Qt 字样的 DLL 文件的蛛丝马迹,这些线索表明 Mendeley 客户端很大可能是直接使用跨平台 UI 框架 Qt 编写的,验证了我们的猜想。
接下来,我们拿到刚刚下载好,并更改名称为 winmm.dll 的 FontMod 文件,进行挂载的工作。
让 FontMod 挂载目标程序
我们将 winmm.dll 直接复制进入刚刚的 Mendeley 安装目录下,这一步骤可能需要「管理员权限」,如果提醒我们,点击授权即可。此时,如果我们尝试双击 MendeleyDesktop.exe 打开 Mendeley 客户端,很可能出现报错,提示你未找到一个名叫 FontMod.yaml 的文件。不必担心,这是正常现象。
Mendeley 默认安装位置位于 Windows C 盘的 Program Files 目录下,这一目录需要管理员权限才能创建文件,因此上一步中 FontMod 没有将自己的配置文件在第一次运行时成功创建,导致报错。我们需要在 Mendeley 的这一安装目录下手动创建一个名为 FontMod.yaml 的文件作为配置文件。
另外,如果你打开之后发现没有什么问题,那么很可能就是 FontMod 为我们创建好了这一文件,我们继续接下来的工作即可。