用脚本实现字体安装

Windows的“字体文件夹”提供了安装新字体的功能, 具体方法是打开“控制面板”中名为“字体”的文件夹, 选择“文件”菜单中的“安装新字体”选项进行字体安装。如果系统盘是“C”盘,字体文件夹的目录就是 “C:\windows\fonts”,我们也可以直接手动拷贝字体文件到该目录。拷贝完成之后,字体文件夹会自动安装该字体并向系统发送字体更新的消息,所以字体文件夹具有自动安装字体的功能。但是通过指令(比如 copy指令)拷贝字体到字体目录是无法实现自动安装字体的,因为这类指令实现的仅仅是文件复制的过程,无法触发字体文件夹安装字体的功能,如想使新安装的字体有效,必须通过重新启动电脑来识别安装新字体。


我们可以自己写个程序来实现自动安装的功能,可实现的方式很多,VC++和VB都提供了相关的函数,但在这里我想推荐Micrsoft TechNet上发表的一个非常简单VBS脚本,无需编译环境就可以实现。
Installfont.vbs脚本如下:

FontFile=WScript.Arguments(0)  ’ WScript.Arguments(0)是命令行中的第一个参数,该参数是预安装字体文件及其路径,比如”C:\Scripts\Myfont.ttf”
Const FONTS = &H14& ‘&H14&是字体文件夹的值,告诉系统我们操作的特殊文件夹是字体文件夹
Set objShell = CreateObject(“Shell.Application”) ‘建立Shell.Applciation 对象
Set objFolder = objShell.Namespace(FONTS) ’将Shel.Applciation 对象和字体文件夹捆绑
objFolder.CopyHere FontFile ‘拷贝字体文件到字体文件夹, 该命令可以触发安装字体的过程。

在Dos环境下执行该脚本方法如下:
> Installfont.vbs C:\Scripts\Myfont.ttf
运行之后,无需重新启动电脑就可以在任何软件下使用该字体,是不是很简单呢 :-)
Micrsoft TechNet的原文:How Can I Install Fonts Using a Script?

Comments are closed.