我需要检查机器上是否没有安装字体,如果没有,我的程序在没有用户界面的情况下安装它。
有谁知道如何做到这一点?
我知道我需要先将字体复制到字体目录但要启用它需要重新启动机器,我不想要这个。
提前感谢您的帮助。
看这里。
也许试试这个:
[DllImport("gdi32", EntryPoint = "AddFontResource")]
public static extern int AddFontResourceA(string lpFileName);
有谁知道如何做到这一点?
是的。它不是。安装字体不是您的工作 - 管理员很可能会告诉您下地狱(例如:您的程序/用户无权这样做)。我必须检查一下,但我很安静,普通用户无法将字体复制到字体目录。
这就是安装人员所做的。您可以静默启动安装程序,但随后您再次进入权限问题,因此除非用户是 - 啊 - ;) 好 - 不是普通用户,否则它不会真正起作用。
机器需要重新启动,我不想要这个。
没有人关心你想要什么。MS 制定了安装指南,必须遵守。我自己去过那里——你做的任何把戏都会回来咬你。谦虚规则在这里 - 遵守规则。
仍然有太多软件是由有问题的人写出来的 - 啊 - 问题 - 例如将配置/用户数据写入他们的文件夹(现在是写保护的 - 并且在过去 10 年中被记录下来)。