windows – 设置EXE VersionInfo
发布时间:2020-12-14 01:42:40 所属栏目:Windows 来源:网络整理
导读:有关我通过 VerQueryValue收到的版本Exe文件的信息.是否有可以注册(建立或更改)此类信息的反函数(WinApi或Delphi)? 这里,例如,有一个能够这样做的程序.它怎么可能有用( http://www.angusj.com/resourcehacker)? 版本信息通过资源存储;编辑您只需编辑该资源
有关我通过
VerQueryValue收到的版本Exe文件的信息.是否有可以注册(建立或更改)此类信息的反函数(WinApi或Delphi)?
这里,例如,有一个能够这样做的程序.它怎么可能有用( http://www.angusj.com/resourcehacker)?
版本信息通过资源存储;编辑您只需编辑该资源.这是我发现的一个单元,可以克隆现有的文件版本信息并将其附加到另一个文件.从这段代码开始,你可以很容易地做你想要的东西(它是由我的一个朋友编写的,可以公开获得):
unit cloneinfo; interface uses Windows,SysUtils; type LANGANDCODEPAGE = record wLanguage: Word; wCodePage: Word; end; procedure clone(sFile,output:string); implementation procedure clone(sFile,output:string); var dwHandle,cbTranslate: cardinal; sizeVers: DWord; lpData,langData: Pointer; lpTranslate: ^LANGANDCODEPAGE; hRes : THandle; begin sizeVers := GetFileVersionInfoSize(PChar(sFile),dwHandle); If sizeVers = 0 then exit; GetMem(lpData,sizeVers); try ZeroMemory(lpData,sizeVers); GetFileVersionInfo (PChar(sFile),sizeVers,lpData); If not VerQueryValue (lpData,'VarFileInfoTranslation',langData,cbTranslate) then exit; hRes := BeginUpdateResource(pchar(output),FALSE); //For i := 0 to (cbTranslate div sizeof(LANGANDCODEPAGE)) do //begin lpTranslate := Pointer(Integer(langData) + sizeof(LANGANDCODEPAGE)); UpdateResource(hRes,RT_VERSION,MAKEINTRESOURCE(VS_VERSION_INFO),lpTranslate^.wLanguage,lpData,sizeVers); //end; EndUpdateResource(hRes,FALSE); finally FreeMem(lpData); end; end; end. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 适用于Windows的Netflow Collector免费版
- windows – 如何使用VBScirpt在已打开的CMD窗口中执行命令
- Windows下安装Memcached的步骤说明
- windows-8 – 如何在Windows 8上为WebDAV启用基本身份验证
- window10下git和github连接的解决方法
- windows-phone-7 – 如何在wp7.1后台代理中分析内存使用情况
- Microsoft iSCSI Software Target可以通过物理磁盘备份LU吗
- 使用Force在Windows上导入大型MySQL .sql文件
- 程序集 – 使用自己的键盘中断`int 09h`处理程序时代码的奇
- list