このクラスをダウンロードしましたhttp://www.codeproject.com/file/VersionInfo.asp
現在実行しているいくつかのプログラムからファイル情報を取得するために使用します。
自分が書いたプログラムから情報を取得したい場合は問題なく動作しますが、たとえば「chrome」や「visualstudio」のファイル情報を取得できません。
アプリケーションのproductNameを照会すると、まだ設定されていないため、「Todo:ProductName」が表示されます;)
しかし、chrome.exeのproductNameをクエリすると、「」が何も表示されません。
誰もその理由を知っていますか?
編集:私は少しデバッグしました、そして問題はここにあります。
BOOL CFileVersionInfo::Open( IN LPCTSTR lpszFileName )
{
if( lpszFileName == NULL )
ASSERT_RETURN( FALSE );
Close();
if( !GetVersionInfo( lpszFileName ) || !QueryVersionTrans() )
Close();
return m_bValid;
};
「chrome.exe」が入力されている場合、GetVersionInfo(lpsz ...)は0を返します
編集2:はいchrome.exeには製品名フィールドがあります。
例:chrome.exe-ファイルの説明:Google Chrome-タイプ:アプリケーション-ファイルバージョン:23.0.1271.97-製品名:Google Chrome-製品バージョン:23.0.1271.97-著作権:.. blabla ...-サイズ:1.18MB-変更日:some_date-言語:英語-元のファイル名:chrome.exe
編集3:exeへのフルパスを取得するにはどうすればよいですか?プロセスIDを持っているだけです。現時点では、iamはすべてのプロセスをループし、私のprocessIdを検索します。
答えてくれてありがとう:-)