2009-07-16 13 views
4

Windowsのexeファイルとmsiファイルからファイルのバージョンと製品のバージョンを解析する必要があります。windows .exeファイルのバージョンを読むには?

ファイル指定やそれを行うライブラリ(好ましくはJava)を教えてください。

UPDATE:

コードが同様にLinux上で実行する必要があるとして、それは、私がWINAPIを使用することはできません判明...

答えて

1

あなたは、ファイルバージョンと製品を得るためにGetFileVersionInfoSizeGetFileVersionInfo機能を使用することができますバージョン。私はJavaの教祖ではないが、私が知る限り、WinAPIの機能を使用する可能性がある。

+0

でそれを修正するために簡単にする必要があり、私はそれについて考え、それを避けたいです... – ya23

0

私は、Windows EXEファイルのPE/NEヘッダーを解析できるDelphiプログラムを持っていますが、ここでは正しくありません。私はそれがファイルのバイナリ分析を行うので、Javaに簡単に移植できると思います。

もちろん、Windows APIへのJNA呼び出しを使用すると、Windows上でトリックを行うことができます。I found itが、いくつかのマイナーな不具合があります:

編集

  • プログラムの本来の目的は、利用可能な時間のように、EXE(PE/NE)ファイルからエキス資源にしましたリソースエディタはPEフォーマットでしか動作しません(NEはWin3.1で使用されます)
  • UIはバージョン情報を表示しませんが、レコード構造はそこにあります
  • UIは完全にハンガリー語ですもしあれば翻訳eded
  • いくつかのレコード構造体の説明を除いて、コードコメントの一部は英語で書かれています。
  • コンパイルされているかどうかわかりません。
  • ZIPは、コンパイルWin32のRESXPLOR.EXE
  • にコードが含まれていますが、ここまたはそこにいくつかのバッファオーバーランのバグを持っている - Javaの
+0

あなたはそれを書きましたか?もしそうなら、どの仕様を使用しましたか?はい、デルファイからの移植は問題ではありません。 – ya23

+0

100%独自のコードですが、4年前にJavaに移行して以来、私は古いものをすばやく手に入れることができません。 2001年頃に開発されたもので、さまざまなサイト(wotsit.orgなど)のファイル形式の仕様を読みました。それは単にアナライザーではなく、添付のツリー表示GUIでした。私はあなたのためにそれを得ることができるが、今から約10時間しかない。そして、もしそれをjavaに移植すれば、それをオープンソースにすることを検討してください。 – akarnokd

関連する問題