VerQueryValue中的lang-codepage如何取得?(200)

  • 主题发起人 主题发起人 DF7C3
  • 开始时间 开始时间
D

DF7C3

Unregistered / Unconfirmed
GUEST, unregistred user!
从网上找的VerQueryValue的第二个参数部分说明如下,但是lang-codepage如何取得?  →“/StringFileInfo/lang-codepage/string-name”,指定存储在特定语言字符串表中结构的值。其中,lang-codepage的书写格式是:用双字(DWORD)表示的、保存在资源中的转换阵列的语言与代码页标识符对,并且需要书写成十六进制形式的字符串;
 
Delphi 的帮助里的 Windows SDK 有说明!Help -> Windows SDK `~~
 
帮助里只是介绍了一下,我没有看到如何取得lang-codepage值的内容!我帖子里那句话其实就是帮助里翻译出来的。
 
VerQueryValue  VerQueryValue   VB声明   Declare Function VerQueryValue& Lib "version.dll" Alias "VerQueryValueA" (pBlock As Byte, ByVal lpSubBlock As String, lplpBuffer As Long, puLen As Long)   说明   这个函数用于从版本资源中获取信息。调用这个函数前,必须先用GetFileVersionInfo函数获取版本资源信息。这个函数会检查资源信息,并将需要的数据复制到一个缓冲区里   返回值   Long,TRUE(非零)表示成功,如请求的信息不存在,或pBlock不属于有效版本信息,那就返回一个零   参数表   参数 类型及说明   pBlock Byte,指定一个内存块第一个字节的地址。这个内存块包含了由GetFileVersionInfo函数取回的版本数据信息   lpSubBlock String,下述值之一:   "/" 获取文件的VS_FIXEDFILEINFO结构   "/VarFileInfo/Translation" 获取文件的翻译表   "/StringFileInfo/...." 获取文件的字串信息。参考注解   lplpBuffer Long,指定一个Long变量的地址,该变量用于装载一个缓冲区的地址。请求的版本信息最终会装载到那个缓冲区里   puLen Long,指定由lplpBuffer参数引用的数据值的长度,以字节为单位   注解   如lplpBuffer参数为"/StringFileInfo/....",缓冲区里就会载入一个整数数组。每一对整数都代表一种语言和代码页,它们描绘了可用的字串信息。通过用下面这三个部分指定一个字串,从而获得StringFileInfo字串数据:"/StringFileInfo/languagecodepage/stringname",[red]其中languagecodepage(语言代码页)是采用字串形式的一个8字符十六进制数字。如翻译表中的语言代码页条目是&H04090000,那么这个字串就应该是"04090000"。[/red]stringname(字串名)指定的是一个字串名。这个参数的一个例子如下:  "/StringFileInfo/04090000/CompanyName"  其他   从vb的api文本查看器复制的声明如下:  Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValue" (pBlock As Any, ByVal lpSubBlock As String, ByVal lplpBuffer As Long, puLen As Long) As Long
 
后退
顶部