Как прочитать версию файла .exe Windows? - PullRequest
4 голосов
/ 16 июля 2009

Мне нужно проанализировать версию файла и версию продукта из файлов Windows EXE и MSI.

Не могли бы вы указать мне спецификацию файла или библиотеку (желательно на Java), которая это делает?

UPDATE:

Оказывается, я не могу использовать winapi, поскольку код должен работать и на Linux ...

Ответы [ 2 ]

1 голос
/ 16 июля 2009

Вы можете использовать функции GetFileVersionInfoSize и GetFileVersionInfo для получения версии файла и версии продукта. Я не гуру в Java, но, насколько я знаю, есть возможность использовать функции WinAPI.

0 голосов
/ 16 июля 2009

У меня есть программа Delphi, которая может анализировать PE / NE заголовки в файлах Windows EXE - но не прямо здесь. Я думаю, что его можно легко перенести на Java, так как он выполняет двоичный анализ файлов.

Конечно, использование вызовов JNA для Windows API может помочь в Windows.

Редактировать: Я нашел это , но есть некоторые незначительные глюки:

  • Первоначальная цель программы состояла в том, чтобы извлечь ресурсы из файлов EXE (PE / NE), поскольку в то время доступные редакторы ресурсов работали только с форматом PE (NE используется Win3.1 )
  • Пользовательский интерфейс не отображает информацию о версии, но для нее существует структура записи
  • Пользовательский интерфейс полностью на венгерском языке, при необходимости могу предоставить перевод
  • Некоторые комментарии к коду написаны на венгерском языке, за исключением некоторых описаний структуры записей на английском языке
  • Я не знаю, скомпилируется он или нет сам по себе сегодня.
  • ZIP включает в себя скомпилированный Win32 RESXPLOR.EXE
  • Код имеет некоторые ошибки переполнения буфера здесь или там - должно быть легко исправить это в Java
...