如何获得文件的信息,如版本号等?
解决方案 »
- DELPHI 读取 磁盘信息
- 关于修改密码的简单问题
- 问:这段sql应该如何写?
- 有没有人用过GVC(致福)ADSL Modem里面的路由功能?里面的[虚拟服务器]功能好像不能用.
- ACCESS数据库字段类型为货币时怎么插入?
- 如何实现这样的多线程?
- 字符串的长度超过255怎么办?
- 请问各位,如果我向存储过程里传递了一个字段名称的参数,应该如何使用?急急急急急!
- ado向数据库(access)中添加记录,为何总是出错误?
- 我该选用那些控件来做我的第一个DELPHI程序
- private//这里的东西定义就是为了给以后其子类继承用的吗,既然定义在这里的东西不能马上用,那么定义来干吗,不太明白前头加F干什么
- 发送二进制文件问题,解决立刻给分
需要包含windows 和 shellapi单元
// fn 是文件名称和路径
// ma,mi,r,b 是版本号
// 如 1.0.3.20 那么 ma=1,mi=0,r=3,b=20
function GetFileVersion(fn: string; var ma, mi, r ,b: integer):boolean;
var
buf, p: pChar;
sver: ^VS_FIXEDFILEINFO ;
i: LongWord;
begin
i:= GetFileVersionInfoSize(pchar(fn), i);
new(sver);
p:= pchar(sver);
GetMem(buf, i);
ZeroMemory(buf, i);
result:= false;
if GetFileVersionInfo(pchar(fn), 0, 4096, pointer(buf)) then
if VerQueryValue(buf, '\', pointer(sver), i) then begin
ma:= sVer^.dwFileVersionMS shr 16;
mi:= sver^.dwFileVersionMS and $0000ffff;
r:= sver^.dwFileVersionLS shr 16;
b:= sver^.dwFileVersionLS and $0000ffff;
result:= true;
end;
Dispose(p);
FreeMem(buf);
end;