中国开发网: 论坛: 程序员情感CBD: 贴子 116828
垃圾
有问题,你这个没有处理版本语言,只能读英语(美国)的版本信息,看我这个
function TfrmMain.getFileVersion(Filename: String): String;

type
TLANGANDCODEPAGE = record
wLanguage,
wCodePage : Word;
end;
PLANGANDCODEPAGE = ^TLANGANDCODEPAGE;

var
S: string;
BufSize, Len: DWORD;
Buf: PChar;
Value: PChar;
Translation: PLANGANDCODEPAGE;
r :String;
InfoPath :String;
begin
r :='';
S := FileName;
BufSize := GetFileVersionInfoSize(PChar(S), BufSize);
if BufSize > 0 then
begin
Buf := AllocMem(BufSize);
GetFileVersionInfo(PChar(S), 0, BufSize, Buf);
if VerQueryValue(Buf, '\VarFileInfo\Translation', Pointer(Translation), BufSize) then
begin
InfoPath :='\StringFileInfo\'+
IntToHex(Translation^.wLanguage,4)+
IntToHex(Translation^.wCodePage,4)+
'\';
end
else
begin
InfoPath :='\StringFileInfo\080403A8\';
end;


if VerQueryValue(Buf, PChar(InfoPath+'FileVersion'), Pointer(Value), Len) then
r := Value;
FreeMem(Buf, BufSize);
end;
Result :=r;
end;


相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录