无忧启动论坛

标题: 拖动字体到fonts不能安装怎么修复? [打印本页]

作者: 9zhmke    时间: 2019-2-1 16:17
标题: 拖动字体到fonts不能安装怎么修复?
本帖最后由 9zhmke 于 2019-2-1 21:22 编辑

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

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

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

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


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





作者: 不落的太阳    时间: 2019-2-1 16:32
這個 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
不落的太阳 发表于 2019-2-1 16:32
這個 vbs 可以安裝當前文件夾下的所有字型

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


不是这个话题......  谢谢你的回答,貌似你没看我的问题是什么?  另外,这个程序没我写的那个好用
作者: 不落的太阳    时间: 2019-2-1 16:49
用支剪了的系统都会有问题的,只是你遇到没
作者: 2010hook    时间: 2019-2-1 16:50
本帖最后由 2010hook 于 2019-2-1 16:53 编辑
9zhmke 发表于 2019-2-1 16:41
不是这个话题......  谢谢你的回答,貌似你没看我的问题是什么?  另外,这个程序没我写的那个好用


请问怎么使用的?有没有执行语法?
双击后,发现安装速度慢,不能静默执行吗?
FontInst.exe 不好么?速度很快
作者: 9zhmke    时间: 2019-2-1 16:57
不落的太阳 发表于 2019-2-1 16:49
用支剪了的系统都会有问题的,只是你遇到没

以前我也认为可能是个大动作,但看到wzzok修复了这个问题所以就提出来看看能不能以比较小的代价解决:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=411802
作者: 9zhmke    时间: 2019-2-1 16:59
本帖最后由 9zhmke 于 2019-2-1 17:12 编辑
2010hook 发表于 2019-2-1 16:50
请问怎么使用的?有没有执行语法?
双击后,发现安装速度慢,不能静默执行吗?
FontInst.exe 不好么 ...


这个就是双击后安装本文件夹中的字体,模拟复制单个字体文件动作以触发安装字体功能,网上流传的VBS脚本都是这样,我也想做成静默的,但做不出来,因为被触发的安装过程是显性的。
以前没用过fontinst.exe,不知道兼容性如何,刚去看了下,感觉还不错,在没找到更合适的方法时就用FontInst.exe了吧,谢谢指点。
作者: 不落的太阳    时间: 2019-2-1 17:12
9zhmke 发表于 2019-2-1 16:57
以前我也认为可能是个大动作,但看到wzzok修复了这个问题所以就提出来看看能不能以比较小的代价解决:
h ...

那些牛B的都不愿意分享方法
作者: bdfcy    时间: 2019-2-1 17:17
WINDOWS\Fonts\desktop.ini 这个文件丢失或者内容有问题会导致安装字体出问题
作者: 9zhmke    时间: 2019-2-1 17:18
不落的太阳 发表于 2019-2-1 17:12
那些牛B的都不愿意分享方法

牛B的人可能事情也会比较多吧,而且牛B的人更擅长于集中精力做事情,到底什么样的才算牛B这个也不好界定
可喜的是楼上也有两位高人出来指点,无忧论坛高手如云
作者: 9zhmke    时间: 2019-2-1 17:19
bdfcy 发表于 2019-2-1 17:17
WINDOWS\Fonts\desktop.ini 这个文件丢失或者内容有问题会导致安装字体出问题

是的,从早期系统就是这样了,但精简版是有这个文件的,否则字体会显示字体的文件名而不是字体名字。
作者: 9zhmke    时间: 2019-2-1 17:30
bdfcy 发表于 2019-2-1 17:17
WINDOWS\Fonts\desktop.ini 这个文件丢失或者内容有问题会导致安装字体出问题

道个歉,仔细看了看,就是这个问题导致的,复制进去就马上解决问题了。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3