在客户端计算机上安装字体

我正在使用Visual Studio 2008和C#客户端应用程序的内置安装工具。 如何使用此安装程序在客户端计算机上安装字体(如果它还没有)?

在VS2005中(所以我也假设2008),右键单击目标机器上的文件系统,添加特殊文件夹 – >字体文件夹,然后将字体文件放在那里。

对我来说,Timothy Carter的答案大多是正确的:

“右键单击目标计算机上的文件系统,添加特殊文件夹 – >字体文件夹,然后将字体文件放在那里。”

但这还不够。 字体实际上并未作为系统字体安装。

要安装字体,我必须访问每个字体文件的属性,并将Register = vsdrfDoNoRegister更改为Register = vsdrfFont。 之后我生成的安装文件也会安装字体!

看看这篇文章。

http://www.atakala.com/Browser/Item.aspx?user_id=amos&dict_id=83

最重要的调用是AddFontResource Win32 API调用,尽管必须遵守所描述的操作顺序,才能在系统中设置工作字体。

http://msdn.microsoft.com/en-us/library/ms534231(VS.85).aspx

AddFontResource函数将指定文件中的字体资源添加到系统字体表中。 随后该字体可用于任何应用程序的文本输出。

我正在使用InnoSetup来提供我的VS应用程序。 它允许您将字体从系统安装到客户端系统。

我从未在Windows 7或Vista中测试过(可能你会遇到一些权限问题)。

请记住,并非所有字体都可以自由分发。