2

使用されているすべてのプログラムの概要と、使用されているこのソフトウェアのバージョン数を知りたいです。正確なバージョン番号を知る必要はありませんが (あればいいのですが)、2 つのものが異なるバージョン (またはビルド) であると言えればよいだけです。

私は各プログラムについて何も知らないので、これを一般的な方法で行う必要があります。これはどのように行うことができますか?

4

1 に答える 1

5

これはかなり一般的な質問なので、一般的な回答をします。次のことを行う必要があります。

  • を呼び出して、すべてのプロセスを列挙しますEnumProcesses()
  • プロセス ID ごとOpenProcess()に、プロセス ハンドルを取得します。
  • プロセスごとにハンドルを呼び出しGetModuleFileNameEx()て、プロセスのメイン実行可能ファイル名を取得します。
  • 最後にGetFileVersionInfo()、おそらくその友達の何人かを呼び出して、情報を取得します。

これにより、マーケティング バージョンではなくバイナリ バージョン情報が提供されます。たとえば、Windows XP はバージョン 5.1、Windows Vista は 6.0、Windows 7 はバージョン 6.1 です。マーケティング バージョンが必要な場合、それはおそらく一般的な方法では達成できません。

于 2011-03-09T12:42:27.530 に答える