delphi内取文件版本信息
2007-04-09 14:33
381 查看
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
unit UVersionInfo;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
interface
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
uses Windows, SysUtils;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
function GetVersionValue(FileName,QueryName:string):String;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
implementation
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
function GetVersionValue(FileName,QueryName:string):String;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
var
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
InfoSize, Wnd: DWORD;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
VerBuf: Pointer;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
szName: array[0..255] of Char;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
Value: Pointer;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
Len: UINT;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
TransString:string;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
begin
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
InfoSize := GetFileVersionInfoSize(PChar(FileName), Wnd);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
if InfoSize <> 0 then
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
begin
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
GetMem(VerBuf, InfoSize);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
try
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
if GetFileVersionInfo(PChar(FileName), Wnd, InfoSize, VerBuf) then
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
begin
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
Value :=nil;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
VerQueryValue(VerBuf, 'VarFileInfoTranslation', Value, Len);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
if Value <> nil then
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
TransString := IntToHex(MakeLong(HiWord(Longint(Value^)), LoWord(Longint(Value^))), 8);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
Result := '';
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
StrPCopy(szName, 'StringFileInfo'+Transstring+''+QueryName);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
if VerQueryValue(VerBuf, szName, Value, Len) then
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
Result := StrPas(PChar(Value));
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
end;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
finally
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
FreeMem(VerBuf);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
end;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
end;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
end;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
end.
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
相关文章推荐
- Delphi 获取文件的版本等信息
- delphi 获取Exe或DLL的文件版本信息
- delphi获取Exe文件版本信息的函数[转]
- C# 获得程序集版本信息,文件修改日期,最后修改日期的类,IList 排序类
- 基于控制台或Win32 API程序生成文件版本信息
- 谈Delphi编程中“流”的应用--可读写信息在文件中
- GetFileVersionInfo 获取文件版本信息错误原因分析
- Qt给应用程序添加版本信息(对rc文件的设置,可利用QT内置变量)
- Delphi 文件的操作:重命名、复制、移动、删除(制作一个信息上传控件)
- 在CVS控制的文本文件中包含文件版本信息
- 给Delphi程序(exe,dll)添加版本信息
- 读取二进制可执行文件资源中包含的各项版本信息
- SVN使用log,list,cat,diff查看所有及特定文件版本信息
- 查看ELF 文件版本信息
- C#:获得文件版本信息及只读文件的删除
- 给Delphi程序添加版本信息
- 查看编译后的class文件的版本信息
- 修改InstallShield打包生成的安装文件的图标和版本信息的方法
- 关于在Delphi中链接VC的obj文件(XE2以上版本)
- 如何查看linux动态链接库文件的版本等其他信息