Installation 如何使用inno安装程序安装字体

Installation 如何使用inno安装程序安装字体,installation,inno-setup,pascal,Installation,Inno Setup,Pascal,我想为inno安装程序预安装字体。我已经用font Aller Light定制了一个inno安装程序。现在,当我第一次在客户机上运行inno安装程序时。 由于字体原因,设计不正确。。但当安装程序再次运行时,设计就正常了 更清楚地说,我的安装程序的设计中使用了这种字体,而不是使用这种安装程序部署的应用程序。 在安装程序可执行文件打开欢迎页面之前,我只需要在客户端计算机上安装字体,这样我为自定义设置所做的设计是正确的。这是个坏主意;在“真正的”安装阶段开始之前修改用户的系统是不好的做法。您应该强烈考

我想为inno安装程序预安装字体。我已经用font Aller Light定制了一个inno安装程序。现在,当我第一次在客户机上运行inno安装程序时。 由于字体原因,设计不正确。。但当安装程序再次运行时,设计就正常了

更清楚地说,我的安装程序的设计中使用了这种字体,而不是使用这种安装程序部署的应用程序。
在安装程序可执行文件打开欢迎页面之前,我只需要在客户端计算机上安装字体,这样我为自定义设置所做的设计是正确的。

这是个坏主意;在“真正的”安装阶段开始之前修改用户的系统是不好的做法。您应该强烈考虑重新设计使用系统标准字体或使用您想要的样式的文本的位图图像,而不是尝试安装字体。 Inno有一种机制可以将字体作为安装本身的一部分来安装,这对于您的应用程序来说已经足够了(请参阅)


如果你真的想走坏的实践之路,你可能会得到一些东西来使用一些调用
ExtractTemporaryFile
InitializeSetup
代码和。(也别忘了发送广播消息。)

谢谢米拉尔,我尝试过使用上述方法,但没有任何帮助。.如何在脚本中调用AddFontResource方法。。我使用了下面的函数。。提取临时文件('aller_lt.TTF');AddFontResource(“aller_lt.TTF”);Addfontresource定义为:函数Addfontresource(文件名:PAnsiChar):整数;外部的AddFontResourceA@gdi32.dllstdcall';SendMessage(HWND_广播,$1D,0,0);调用
ExtractTemporaryFile
时,它将被提取到
{tmp}
。您必须将它从那里(使用
FileCopy
)复制到
{font}
文件夹中,并使用完整路径名(不要忘记调用
ExpandConstant
)从那里注册它,如果您希望它是永久的。这与Inno的标准
FontInstall
方法使用的过程相同。或者您可以使用
FR_PRIVATE
标志将其注册为临时字体。然后您不需要复制或广播(但仍然需要
{tmp}
)。