找到所有字体与" Arial"以他们的名义

时间:2016-01-13 16:11:00

标签: vbscript fonts wsh

下面的代码找到字体" Arial",但我想在标题中找到Arial的所有字体(所以" Arial Rounded"," Arial Unicode& #34;等)。我应该可以使用外卡吗?我不知道它到底在哪里。有人可以帮我回复所有有" Arial"在他们身上?

Const FONTS = &H14&

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(FONTS)
Set objFolderItem = objFolder.Self

Set colItems = objFolder.Items
For Each objItem In colItems
    If objItem = "Arial" Then
        Wscript.Echo objItem.Name
    End If
Next

1 个答案:

答案 0 :(得分:1)

你几乎已经拥有它了。您只需要检查项目的名称是否包含(子)字符串" Arial":

For Each objItem in colItems
    If InStr(LCase(objItem.Name), "arial") > 0 Then
        WScript.Echo objItem.Name
    End If
Next

名称的小写是为了使比较不区分大小写。

(有点笨拙)InStr比较的替代方法是使用正则表达式测试项目名称:

Set re = New RegExp
re.Pattern = "arial"
re.IgnoreCase = True

For Each objItem in colItems
    If re.Test(objItem.Name) Then
        WScript.Echo objItem.Name
    End If
Next
相关问题