gpt4 book ai didi

c# - 如何以编程方式安装字体 (C#)

转载 作者:可可西里 更新时间:2023-11-01 03:00:56 25 4
gpt4 key购买 nike

有没有办法以编程方式将字体永久添加到 Windows 7/8 PC?我已经阅读了几篇关于 AddFontResource DLL-Import 的文章,但它似乎不起作用。

除此之外,MSDN Documentation表示字体将在计算机重新启动后删除,除非将字体添加到注册表中。

如何永久安装字体?如何将字体添加到注册表?它总是相同的名称/条目吗?

我必须在运行时动态添加字体,因为我会在用户选择字体后立即获取字体。

备注:我知道如何添加注册表项。我的问题更多是关于 Windows XP、Vista、7 和 8 以及不同字体类型之间的兼容性。也许有一种方法可以启动另一个为我安装字体的 exe。

最佳答案

如您所述,您可以启动其他可执行文件来为您安装 TrueType 字体。我不知道您的具体用例,但我会列出我知道的方法,也许其中一个对您有用。

Windows 有一个名为 fontview.exe 的内置实用程序,您只需调用 Process.Start("Path\to\file.ttf") 即可调用它在任何有效的 TrueType 字体上...假设默认文件关联。这类似于从 Windows 资源管理器手动启动它。这里的优点是它真的很简单,但它仍然需要用户对每种字体进行交互才能安装。据我所知,没有办法调用此过程的“安装”部分作为参数,但即使有,您仍然必须提升权限并与 UAC 作斗争。

更有趣的选择是一个名为 FontReg 的实用程序它取代了旧版本 Windows 中包含的已弃用的 fontinst.exe。 FontReg 使您能够通过使用 /copy 开关调用可执行文件来以编程方式安装整个字体目录:

    var info = new ProcessStartInfo()
{
FileName = "Path\to\FontReg.exe",
Arguments = "/copy",
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Hidden

};

Process.Start(info);

请注意,字体必须位于 FontReg.exe 所在位置的根目录中。您还必须具有管理员权限。如果您需要字体安装完全透明,我建议您使用提升的权限启动您的应用程序并预​​先批准 UAC,这样当您生成子进程时您将不需要用户批准 Permissions stuff

关于c# - 如何以编程方式安装字体 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21986744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com