|
本帖最后由 perfect131 于 2023-1-31 15:03 编辑
这样 , 可以先检查是否已安装
- Const FOF_SILENT = &H4&
- Const FOF_RENAMEONCOLLISION = &H8&
- Const FOF_NOCONFIRMATION = &H10&
- Const FOF_ALLOWUNDO = &H40&
- Const FOF_FILESONLY = &H80&
- Const FOF_SIMPLEPROGRESS = &H100&
- Const FOF_NOCONFIRMMKDIR = &H200&
- Const FOF_NOERRORUI = &H400&
- Const FOF_NOCOPYSECURITYATTRIBS = &H800&
- Const FOF_NORECURSION = &H1000&
- Const FOF_NO_CONNECTED_ELEMENTS = &H2000&
- Dim cFlags
- ''cFlags = FOF_SILENT + FOF_NOCONFIRMATION + FOF_NOERRORUI
- cFlags = FOF_SILENT
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- Set font = CreateObject("Shell.Application").NameSpace("shell:fonts")
- tmp0=Wscript.CreateObject("Wscript.Shell").SpecialFolders("fonts") & ""'字体文件所在文件夹
- ''系统字体 遍历
- Set Folder = objFSO.GetFolder("C:\Windows\Fonts")
- set dic = CreateObject("Scripting.Dictionary")
- For Each File In Folder.Files
- If instr(LCase(File.Name),".ttf") Then
- dic(LCase(File.Name))=""
- End If
- Next
- ''用户特定的字体 遍历
- Set oShell = CreateObject("WScript.Shell")
- strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%") &"\AppData\Local\Microsoft\Windows\Fonts"
- Set Folder1 = objFSO.GetFolder(strHomeFolder)
- For Each File1 In Folder1.Files
- If instr(LCase(File1.Name),".ttf") Then
- dic(LCase(File1.Name))=""
- End If
- Next
- '''.\ 当前目录
- for each f in objFSO.getfolder(".").files '文件夹所有文件
- tmp1=LCase(f.path) '''''完整文件名和路径
- tmp2=right(tmp1,3) ''''扩展名
- tmp3=LCase(f.name) ''''文件名
- '''判断字体是否 已装
- if tmp2="ttf" and not dic.exists(tmp3) then font.CopyHere tmp1, cFlags
- next
- msgbox "OK!!!!!!"
- Set objFSO = nothing
- Set font = nothing
- Set oShell = nothing
- set dic = nothing
复制代码 大神们赐个静默安装吧(不显示进度对话框),上面这段不能静默, 估计 cFlags 没写对 |
|