我有一个与Inno Setup一起安装的自定义字体,并且仅当升级了我的安装程序中的字体后,我才想覆盖现有字体。
为了做到这一点,我试图从字体文件中获取版本,但是要GetVersionNumbersString
在函数中或GetFileVersionString
在Inno Setup预处理器中。据我了解,这些功能仅适用于exe或dll,但我可能错了。
任何帮助我实现这一目标的线索将不胜感激。
谢谢,
奥利维尔
您可以使用以下代码提取TTF文件(可能是任何文件)的版本:
function GetShellItemVersion(Path: string): string;
var
Shell, Folder, Item, Version: Variant;
FolderPath: string;
begin
Shell := CreateOleObject('Shell.Application');
FolderPath := ExtractFilePath(Path);
Folder := Shell.NameSpace(FolderPath);
if VarIsClear(Folder) then
begin
Log(Format('Error reading folder "%s"', [FolderPath]));
end
else
begin
Item := Folder.ParseName(ExtractFileName(Path));
if VarIsClear(Item) then
begin
Log(Format('Error accessing "%s"', [Path]));
end
else
begin
Version := Folder.GetDetailsOf(Item, 166);
if VarIsClear(Version) then
begin
Log(Format('Error reading version of "%s"', [Path]));
end
else
begin
Result := Version;
Log(Format('Version of "%s" is "%s"', [Path, Result]));
end;
end;
end;
end;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句