9zhmke 发表于 2019-2-1 16:17:29

拖动字体到fonts不能安装怎么修复?

本帖最后由 9zhmke 于 2019-2-1 21:22 编辑

经bdfcy指点,是由于desktop.ini文件删除导致,补回后完美解决这个问题,2010hook 也指点了可以使用FontInst.exe来做静默安装更方便,在此一并向指点过的不落的太阳致谢

正常情况把字体文件拖动、复制到系统的字体文件夹中,会触发系统的字体安装功能。但从比较早的时候,大多精简系统里陆续去掉了这个功能,拖动就变成了直接复制,随之而来的是依赖于此功能的VBS字体安装的程序也就无法使用了。

因为有些字体设置了限制,比如不能用到PPT中、不能带字体保存于WORD等限制,为了自己方便就编辑了这些权限后打包,然后做成安装包。
近期的三杰SE版非常好用,但因为这个问题却不得不手工安装字体,有什么方法可以解决吗?

附上我使用的VBS安装字体脚本:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set font = CreateObject("Shell.Application").NameSpace("shell:fonts")
tmp0=Wscript.CreateObject("Wscript.Shell").SpecialFolders("fonts") & "\"'字体文件所在文件夹
for each f in objFSO.getfolder(".").files '文件夹所有文件
    tmp1=LCase(f.path)'完整文件名和路径
    tmp2=right(tmp1,3)'扩展名
    tmp3=asc(left(right(tmp1,4),1)):if tmp3=49 then tmp3=46 '我也不知为什么取出来不是".",只知和系统有关
    if tmp3<>46 or objFSO.FileExists(tmp0 & LCase(f.name)) then tmp2="" '扩展名容错或容错fonts下已装字体
    if tmp2="ttf" or tmp2="ttc" or tmp2="otf" or tmp2="fon" thenfont.CopyHere(tmp1)
next


VBS中核心语句相同的脚本都不能安装,除非用VBS调用 addApplicationFont,目前网上还没看到这个资料。




不落的太阳 发表于 2019-2-1 16:32:20

這個 vbs 可以安裝當前文件夾下的所有字型

    Set ofso = CreateObject("Scripting.FileSystemObject")
    SourceFolder = ofso.GetParentFolderName(Wscript.ScriptFullName)

    Const FONTS = &H14&

    Set objShell= CreateObject("Shell.Application")
    Set oSource   = objShell.Namespace(SourceFolder)
    Set oWinFonts = objShell.Namespace(FONTS)

    ' Lame VBscript needs 4 f*ing lines instead of "if (/\.ttf$/i) " ...
    Set rxTTF = New RegExp
    rxTTF.IgnoreCase = True
    rxTTF.Pattern = "\.ttf$"

    FOR EACH FontFile IN oSource.Items()
      IF rxTTF.Test(FontFile.Path) THEN   
            oWinFonts.CopyHere FontFile.Path
      END IF
    NEXT

9zhmke 发表于 2019-2-1 16:41:22

不落的太阳 发表于 2019-2-1 16:32
這個 vbs 可以安裝當前文件夾下的所有字型

    Set ofso = CreateObject("Scripting.FileSystemObject") ...

不是这个话题......谢谢你的回答,貌似你没看我的问题是什么?另外,这个程序没我写的那个好用

不落的太阳 发表于 2019-2-1 16:49:04

用支剪了的系统都会有问题的,只是你遇到没

2010hook 发表于 2019-2-1 16:50:15

本帖最后由 2010hook 于 2019-2-1 16:53 编辑

9zhmke 发表于 2019-2-1 16:41
不是这个话题......谢谢你的回答,貌似你没看我的问题是什么?另外,这个程序没我写的那个好用

请问怎么使用的?有没有执行语法?
双击后,发现安装速度慢,不能静默执行吗?
FontInst.exe 不好么?速度很快

9zhmke 发表于 2019-2-1 16:57:00

不落的太阳 发表于 2019-2-1 16:49
用支剪了的系统都会有问题的,只是你遇到没

以前我也认为可能是个大动作,但看到wzzok修复了这个问题所以就提出来看看能不能以比较小的代价解决:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=411802

9zhmke 发表于 2019-2-1 16:59:21

本帖最后由 9zhmke 于 2019-2-1 17:12 编辑

2010hook 发表于 2019-2-1 16:50
请问怎么使用的?有没有执行语法?
双击后,发现安装速度慢,不能静默执行吗?
FontInst.exe 不好么 ...

这个就是双击后安装本文件夹中的字体,模拟复制单个字体文件动作以触发安装字体功能,网上流传的VBS脚本都是这样,我也想做成静默的,但做不出来,因为被触发的安装过程是显性的。
以前没用过fontinst.exe,不知道兼容性如何,刚去看了下,感觉还不错,在没找到更合适的方法时就用FontInst.exe了吧,谢谢指点。

不落的太阳 发表于 2019-2-1 17:12:50

9zhmke 发表于 2019-2-1 16:57
以前我也认为可能是个大动作,但看到wzzok修复了这个问题所以就提出来看看能不能以比较小的代价解决:
h ...

那些牛B的都不愿意分享方法

bdfcy 发表于 2019-2-1 17:17:42

WINDOWS\Fonts\desktop.ini 这个文件丢失或者内容有问题会导致安装字体出问题

9zhmke 发表于 2019-2-1 17:18:08

不落的太阳 发表于 2019-2-1 17:12
那些牛B的都不愿意分享方法

牛B的人可能事情也会比较多吧,而且牛B的人更擅长于集中精力做事情,到底什么样的才算牛B这个也不好界定
可喜的是楼上也有两位高人出来指点,无忧论坛高手如云

9zhmke 发表于 2019-2-1 17:19:42

bdfcy 发表于 2019-2-1 17:17
WINDOWS\Fonts\desktop.ini 这个文件丢失或者内容有问题会导致安装字体出问题

是的,从早期系统就是这样了,但精简版是有这个文件的,否则字体会显示字体的文件名而不是字体名字。

9zhmke 发表于 2019-2-1 17:30:02

bdfcy 发表于 2019-2-1 17:17
WINDOWS\Fonts\desktop.ini 这个文件丢失或者内容有问题会导致安装字体出问题

道个歉,仔细看了看,就是这个问题导致的,复制进去就马上解决问题了。
页: [1]
查看完整版本: 拖动字体到fonts不能安装怎么修复?