You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CopyHere中传递Flag参数?字体安装弹窗无法消除

解决VBS调用CopyHere安装字体时弹窗无法屏蔽的问题

你使用的16(对应十六进制&H10&)参数仅能控制文件复制进度对话框,但字体安装时弹出的注册提示弹窗是系统字体服务触发的,这个参数无法屏蔽这类弹窗。

方案一:调整CopyHere参数组合

尝试使用多参数组合,覆盖错误提示、进度对话框和重复文件提示,参数值为十进制148(对应&H10& + &H4& + &H80&),各参数作用:

  • &H10&:隐藏复制进度对话框
  • &H4&:隐藏错误提示对话框
  • &H80&:跳过已存在文件不提示

修改后的代码:

Set objFSO = CreateObject("Scripting.FileSystemObject")

objStartFolder = CStr(WScript.Arguments.Item(0))
Const FONTS = &H14&

Set objShell = CreateObject("Shell.Application")

Set objFontFolder = objShell.Namespace(FONTS)
Set objFolder = objFSO.GetFolder(objStartFolder)

Set colFiles = objFolder.Files
For Each objFile in colFiles
    objFontFolder.CopyHere objFile.Path, 148
Next

方案二:直接复制+静默注册表注册

如果CopyHere参数仍无效,可直接复制字体文件到系统字体目录,再通过注册表静默注册,完全避开系统弹窗:

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")

objStartFolder = CStr(WScript.Arguments.Item(0))
fontDir = objShell.ExpandEnvironmentStrings("%windir%\Fonts")

Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files

For Each objFile in colFiles
    ' 复制字体文件到系统字体目录
    objFSO.CopyFile objFile.Path, fontDir & "\", True
    ' 注册表静默注册(仅支持TrueType字体)
    objShell.Run "reg add ""HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"" /v """ & objFile.Name & """ /t REG_SZ /d """ & objFile.Name & """ /f", 0, True
Next

注意:此方法需要脚本以管理员权限运行,否则无法写入系统字体目录和注册表。

内容的提问来源于stack exchange,提问作者Benoît RODDE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 05:20:29