如何阅读windows .exe文件版本?

时间:2009-07-16 10:39:34

标签: java windows file-io

我需要解析windows exe和msi文件中的文件版本和产品版本。

你能指点我做文件规范或库(最好用Java)吗?

更新

事实证明我不能使用winapi,因为代码也需要在linux上运行......

2 个答案:

答案 0 :(得分:1)

您可以使用GetFileVersionInfoSizeGetFileVersionInfo函数来获取文件版本和产品版本。我不是Java的大师,但据我所知,有可能使用WinAPI函数。

答案 1 :(得分:0)

我有一个Delphi程序,它可以分析Windows EXE文件中的PE / NE头 - 但不是就在这里。我认为可以轻松移植到Java,因为它可以对文件进行二进制分析。

当然,使用JNA调用Windows API可以在Windows上实现这一功能。

修改: I found it,但有一些小问题:

  • 该计划的最初目的是从EXE(PE / NE)文件提取资源,因为可用资源编辑器仅使用PE格式(Win3使用NE)。 1)
  • UI不显示版本信息,但记录结构适用于它
  • 用户界面完全是匈牙利语,我可以根据需要提供翻译
  • 一些代码注释是匈牙利语,但一些记录结构描述除外,这些描述是英文
  • 我不知道它今天是否自行编译。
  • ZIP包含已编译的Win32 RESXPLOR.EXE
  • 这里或那里的代码有一些缓冲区溢出错误 - 应该很容易用Java修复它