delphi2009如何获取软件版本号?
解决方案 »
- 原来CSDN和我们在一个院子里面。老大别老是把灌水的帖子往灌水乐园转,不然人气全没了。
- delphi中如何连接一个设置了数据库密码的ACCESS数据库呀?
- 定义了过程后怎么用
- 请教fastreport,quickreport,rave,Crystal的区别
- 各位DELPHI程序员给点建议。
- 数据库的问题
- 如何实现Twebbrowser控件的滚动条为Flat平面的,而不是3D的?
- Delphi7 GDI+画图的问题
- 哪位大侠指点一下在win2k如何下如何编写服务程序?请举个例子说明。可以加分。谢谢!
- DataSnap服务连接不上
- Delphi7 创建的服务程序问题
- 急问!FastReports问题
jedi project里有个jedi.inc,里面定义了许多预编译标识符,比如delphi 2009的话就可以通过
{$IFDEF DELPHI2009}
{$ENDIF}
来判断,不用去记 ver200 这么难记的标识符了
Windows,
SysUtils;{
名称: GetFileVersion
功能: 获取文件版本号
参数: FilePath: string - 指定文件路径, 若传入空字符串(默认值), 则直接获取当前程序文件版本.
返回: string - 返回版本号字符串
}
function GetFileVersion(const FilePath: string = ''): string;
var
FileName: string;
pVerInfo: PVSFixedFileInfo;
pBuffer: Pointer;
dwSize: DWORD;
dwHandle: DWORD;
dwLength: DWORD;
begin
Result := ''; FileName := FilePath;
if Length(Trim(FileName)) = 0 then
begin
FileName := ParamStr(0);
end; if not FileExists(FileName) then Exit; dwSize := GetFileVersionInfoSize(PChar(FileName), dwHandle);
if dwSize = 0 then Exit; GetMem(pBuffer, dwSize);
try
try
GetFileVersionInfo(PChar(FileName), 0, dwSize, pBuffer);
if VerQueryValue(pBuffer, '\', Pointer(pVerInfo), dwLength) then
begin
Result := Format(
'%d.%d.%d.%d',
[HIWORD(pVerInfo.dwFileVersionMS),
LOWORD(pVerInfo.dwFileVersionMS),
HIWORD(pVerInfo.dwFileVersionLS),
LOWORD(pVerInfo.dwFileVersionLS)]
);
end;
except
Exit;
end;
finally
FreeMem(pBuffer);
end;
end;