在Windows XP中安装字体的脚本

时间:2015-05-29 19:47:17

标签: vbscript windows-xp

我正在尝试使用VBScript在Windows XP中安装字体。但由于某些原因,我的脚本在Windows 7中运行良好,但在Windows XP中不起作用。我需要在没有系统重启的情况下安装字体,所以我不得不选择这种方法而不是其他需要系统重启的注册表更改方法。这是我的VBScript

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("D:\Logs\")
Set objFolderItem = objFolder.ParseName("Roboto-Italic.ttf")
objFolderItem.InvokeVerb("Install")

我的猜测是InvokeVerb(“Install”)命令在Windows XP中不起作用。在那种情况下还有其他选择吗?请指导我谢谢...

1 个答案:

答案 0 :(得分:3)

下一个脚本(代码片段)应该在(过时的)Windows XP上运行:

Const ssfFONTS = &H14&

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(ssfFONTS)
objFolder.CopyHere "D:\Logs\Roboto-Italic.ttf"

如果已安装该字体,系统可能会提示您覆盖该字体。不确定是否需要使用上述方法进行重启...

请参阅jQuery documentation

  

指定标识特殊的唯一且与系统无关的值   文件夹。这些文件夹经常被应用程序使用,但是哪些   在任何给定系统上可能没有相同的名称或位置。

其中:

  
      
  • ssfFONTS 0x14 (20)。包含已安装字体的虚拟文件夹。一个   典型路径为C:\Windows\Fonts
  •   

阅读ShellSpecialFolderConstants enumeration

  

一旦将字体添加到文件夹,即操作系统   会立即为你安装字体...
  这是真的,但有一个非常重要的警告:你必须复制   文件使用 Shell对象。不可否认,您可以使用WMI或。{   FileSystemObject将文件复制到Fonts文件夹中;然而,   当你这样做时,操作系统将不会自动安装   你的字体据我们所知,唯一的程序化方式   Windows识别出Fonts添加了新字体   文件夹,从而让Windows为您安装该字体,就是使用    Shell对象