请教GetFileVersionInfo的用法? 有谁使用过GetFkleVersionInfo这个api函数,能给我举个例子详细说说吗?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很久以前的代码,凑合看吧,那个namepath是文件路径;s1,s2什么的就不用说了吧var InfoSize , Zero : DWORD; VersionInfo ,Info : Pointer; Translation: PLANGANDCODEPAGE; InfoPath : String;begin InfoSize := GetFileVersionInfoSize(PChar(NamePath),Zero); if InfoSize = 0 then begin Exit; end; GetMem(VersionInfo,InfoSize); try if Not GetFileVersionInfo(PChar(NamePath),0,InfoSize,VersionInfo) then begin Exit; end; if VerQueryValue(VersionInfo, '\VarFileInfo\Translation', Pointer(Translation), InfoSize) then begin InfoPath := '\StringFileInfo\' + inttoHex(Translation^.wLanguage, 4) + inttoHex(Translation^.wCodePage, 4) + '\'; GetMem(Info, 2000); VerLanguageName(Translation^.wLanguage, Info, 2000); end else begin//set default value InfoPath := '\StringFileInfo\040904E4\'; end; if VerQueryValue(VersionInfo, PChar(InfoPath + 'ProductVersion'), Info, InfoSize) then S1 := string(PChar(Info)); //版本; if VerQueryValue(VersionInfo, PChar(InfoPath + 'CompanyName'), Info, InfoSize) then S2 := string(PChar(Info)); //厂商; if VerQueryValue(VersionInfo, PChar(InfoPath + 'LegalTrades'), Info, InfoSize) then S3 := string(PChar(Info)); // if VerQueryValue(VersionInfo, PChar(InfoPath + 'FileDescription'), Info, InfoSize) then S4 := string(PChar(Info)); //描述; finally FreeMem(VersionInfo, InfoSize); end;end; sql server数据库恢复问题,急! listview里每一行怎么设置小图标?ICON char不是16位吗?但下面这个语句为何是1 ◆◆如何知道某一天是一个月的第几个星期◆◆ image控件的问题!在线等待! 请问一个函数?关于朝一个文件写数据的函数! 請問如何用DELPHI備份數據庫。 如何动态生成Twebbrowser的网页内容 delphi指针问题 小弟明日面试,各位给点建议。小弟DELPHI水平一般,明日得笔试。HELP ME! DELHPI5中ADO控件和SQLSERVER 2000的连接报错问题 有没有人看过邮电出版社的《delphi6数据库系统开发实例导航》,评价一下
s1,s2什么的就不用说了吧var
InfoSize , Zero : DWORD;
VersionInfo ,Info : Pointer;
Translation: PLANGANDCODEPAGE;
InfoPath : String;
begin
InfoSize := GetFileVersionInfoSize(PChar(NamePath),Zero);
if InfoSize = 0 then begin
Exit;
end;
GetMem(VersionInfo,InfoSize);
try
if Not GetFileVersionInfo(PChar(NamePath),0,InfoSize,VersionInfo) then begin
Exit;
end;
if VerQueryValue(VersionInfo, '\VarFileInfo\Translation', Pointer(Translation), InfoSize) then
begin
InfoPath := '\StringFileInfo\' + inttoHex(Translation^.wLanguage, 4) + inttoHex(Translation^.wCodePage, 4) + '\';
GetMem(Info, 2000);
VerLanguageName(Translation^.wLanguage, Info, 2000);
end
else begin//set default value
InfoPath := '\StringFileInfo\040904E4\';
end; if VerQueryValue(VersionInfo, PChar(InfoPath + 'ProductVersion'), Info, InfoSize) then
S1 := string(PChar(Info)); //版本;
if VerQueryValue(VersionInfo, PChar(InfoPath + 'CompanyName'), Info, InfoSize) then
S2 := string(PChar(Info)); //厂商;
if VerQueryValue(VersionInfo, PChar(InfoPath + 'LegalTrades'), Info, InfoSize) then
S3 := string(PChar(Info)); //
if VerQueryValue(VersionInfo, PChar(InfoPath + 'FileDescription'), Info, InfoSize) then
S4 := string(PChar(Info)); //描述;
finally
FreeMem(VersionInfo, InfoSize);
end;
end;