怎样获得一个Application的版本信息?
解决方案 »
- 公司给的给芯片烧录Flash的软件,在笔记本上打开时出现Access violation at address....
- 问题出在哪?
- 怎样给TMainMenu添加mousemove事件?
- 自己写了个word插件如何放在word中工具条的后边??
- 怎样由 8 个 Button 的是否按下状态 生成 象11001100这样的8位字符数
- *************中国P2P联盟招人啦 *************
- 如何实现鼠标在桌面(x,y)处单击操作,如何结束正在运行的IE
- 用ADOQUERY.SQL能否改变'TEXT'类型字段大小,且保留原有数据?
- Dspack开发中的小问题,实在过不去了!!!!
- 我要在技术栏查文章,怎么查?
- ListBox控件,如何找回焦点?
- 今天我大寿,分5贴散分1000(5 of 5),请各位自觉莫重复接分!
GetVersion好象是WinApi函数,用于得到操作系统的版本号呢!
此问题关注中!
TRVersion= record
ma,
mj,
r,
b: integer;
fd: integer
end;.................
function GetVersionDetail(const sFN: string; var rv: TRVersion): boolean;
var
buf: pchar;
sVer: PVSFIXEDFILEINFO ;
i: LongWord;
begin
result:= false;
try
if (Trim(sFN) = '') then
exit;
if (not FileExists(sFN)) then
raise Exception.CreateFmt('File ''%s'' is not exists, Please check again.', [sFN]);
//
i:= GetFileVersionInfoSize(pchar(sFN), i);
GetMem(buf, i);
try
ZeroMemory(buf, i);
Result:= false;
if GetFileVersionInfo(pchar(sFN), 0, 4096, pointer(buf)) then
if VerQueryValue(buf, '\', pointer(sver), i) then begin
rv.ma:= sVer^.dwFileVersionMS shr 16;
rv.mj:= sver^.dwFileVersionMS and $0000ffff;
rv.r := sver^.dwFileVersionLS shr 16;
rv.b := sver^.dwFileVersionLS and $0000ffff;
rv.fd:= sver^.dwFileDateLS;
end;
result:= true;
finally
FreeMem(buf);
end;
//
except
raise;
end;
end;