手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

用Delphi实现动态获取版本信息

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!


  szLang,这个参数指向一个缓冲区。这个缓冲区用于存储由wLang参数所确定的、用来描述语言的、以NULL结尾的字符串。

  nSize 指定缓冲区的大小,单位是字符数量。

  函数将返回存储在缓冲区中字符串的以字符为单位的大小。返回值不包含结束NULL字符。如果描述字符串小于或等于缓冲区的大小,那么整个描述字符串将保存在这个缓冲区中;否则,缓冲区中将之保留描述字符串的前面大小等于缓冲区大小的部分。

  如果发生错误,返回值将等于0。未知的语言标识符不会产生错误。

  通常,安装程序通过这个函数来翻译从VarQuery函数返回的语言标识符。当出现语言冲突的时候,这个得到的文本字符串便可以用在一个向用户询问怎样处理的对话框中,提示用户进行处理。

  1.4. VerQueryValue函数

  VerQueryValue函数被用来从指定的版本信息资源中获取指定版本信息。最常用的获取版本信息的逻辑流程是:先调用GetFileVersionInfoSize函数,紧接着再调用GetFileVersionInfo函数,最后再调用VerQueryValue函数。其Delphi函数声明如下:

function VerQueryValue(
PBlock: Pointer; // 存放版本资源的缓冲区
lpSubBlock: PChar; // 期望获取的值
var lplpBuffer: Pointer; // 指向存放版本值缓冲区的指针
var puLen: UINT // 版本信息长度
): BOOL; stdcall;

  参数说明:

  pBlock,一个指向用于存储版本信息资源的缓冲区的指针,这个版本信息资源是从GetFileVersionInfo函数返回的。

  lpSubBlock,指向一个零结尾的字符串,指定到底获得哪个版本信息值。这个字符串必须由被反斜线符号(\)分开的名字组成如下格式之一:

  →“\”,指定根区域。函数将返回一个指向VS_FIXEDFIELDFILEINFO结构的版本信息资源。

  →“\VarFileInfo\Translation”,指定一个保存在可变类型变量信息的结构中的转换阵列。函数返回一个指向语言和代码页标识符数组的指针。应用程序可以使用这些标识符来访问存储在版本信息资源中的特定语言字符串表结构。

  →“\StringFileInfo\lang-codepage\string-name”,指定存储在特定语言字符串表中结构的值。其中,lang-codepage的书写格式是:用双字(DWORD)表示的、保存在资源中的转换阵列的语言与代码页标识符对,并且需要书写成十六进制形式的字符串;string-name必须是在后面注释中预定义的字符串之一。函数根据指定的语言与代码页,返回一个与之相关的字符串。

  lplpBuffer,一个指向用于保存指向被请求的版本信息缓冲区的变量的指针。简单的说,就是一个指向指针的指针。

  puLen,指向一个保存版本信息长度的缓冲区。

  如果指定的版本信息结构存在并且有效,函数将返回一个非0值。如果长度缓冲区的地址等于0,指定的版本信息名称将无效。

  并且,在指定的名称不存在或指定的资源无效时,函数的返回值将等于0。

  以下列表是预定义的版本信息统一字符编码标准字符串:

Comments、InternalName、ProductName、CompanyName、LegalCopyright、ProductVersion、FileDescription、LegalTrademarks、PrivateBuild、FileVersion、OriginalFilename、SpecialBuild

1 2 下一页

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!