如何得到一个dll文件的版本,厂商,最后更新日期等信息?
解决方案 »
- 为什么不能Hook到菜单点击的消息WM_COMMAND呢?
- apihook的问题
- DBGrid的小小问题
- 请高手指教!我想在DbDataTimePicker中实现'2004-04-17 10AM',
- 请问各位高手一个问题。!!!
- 如何按比例缩小图象??
- 关于ADOConnection的事务问题,请高手指点……
- 求算法:求环绕一条线的矩形的四个端点。
- DBEdit值为空如何处理?
- ====delphi5怎么连接Access2000数据库?===
- 我是菜鸟我要问!
- 调用接口的问题,我的com实现了两个接口Iservermodule﹐MyInterface﹐我通过socketconnection1.AppServer调用函数﹐只能调用Iservermodule
function FileVersion(FileName:string=''): string;
type
PFixedFileInfo = ^TFixedFileInfo;
TFixedFileInfo = record
dwSignature : DWORD;
dwStrucVersion : DWORD;
wFileVersionMS : WORD; // Minor Version
wFileVersionLS : WORD; // Major Version
wProductVersionMS : WORD; // Build Number
wProductVersionLS : WORD; // Release Version
dwFileFlagsMask : DWORD;
dwFileFlags : DWORD;
dwFileOS : DWORD;
dwFileType : DWORD;
dwFileSubtype : DWORD;
dwFileDateMS : DWORD;
dwFileDateLS : DWORD;
end; // TFixedFileInfo
var
dwHandle, dwVersionSize : DWORD;
strSubBlock : String;
pTemp : Pointer;
pData : Pointer;
VersionInfo : TFixedFileInfo;
begin
strSubBlock := '\';
if FileName='' then FileName:=ParamStr(0);
if Not FileExists(FileName) then
begin Result:=''; {'File not found!';} end;
// get version information values
dwVersionSize := GetFileVersionInfoSize( PChar( FileName ), // pointer to filename string
dwHandle ); // pointer to variable to receive zero
// if GetFileVersionInfoSize is successful
if dwVersionSize <> 0 then
begin
GetMem( pTemp, dwVersionSize );
try
if GetFileVersionInfo( PChar( FileName ), // pointer to filename string
dwHandle, // ignored
dwVersionSize, // size of buffer
pTemp ) then // pointer to buffer to receive file-version info.
if VerQueryValue( pTemp, // pBlock - address of buffer for version resource
PChar( strSubBlock ), // lpSubBlock - address of value to retrieve
pData, // lplpBuffer - address of buffer for version pointer
dwVersionSize ) then // puLen - address of version-value length buffer
VersionInfo := PFixedFileInfo( pData )^;
Result:=Format('%d.%d.%d.%d', [VersionInfo.wFileVersionLS, VersionInfo.wFileVersionMS,
VersionInfo.wProductVersionLS, VersionInfo.wProductVersionMS]);
// 'Version: ' IntToStr( VersionInfo.wFileVersionLS ) + '.' + IntToStr( VersionInfo.wFileVersionMS )
// 'Release: ' IntToStr( VersionInfo.wProductVersionLS) 'Build: ' IntToStr( VersionInfo.wProductVersionMS )
finally
FreeMem( pTemp );
end; // try
end; // if dwVersionSize
end;http://lysoft.7u7.net