2

C++ を使用して、Windows でプロセスの説明 (タスク マネージャーに表示される説明) を取得したいと考えています。

4

2 に答える 2

5

ほとんどの場合、 API 呼び出しを使用して、プログラムのメイン ファイルのFileDesriptionバージョン リソースからフィールドを取得します。そのドキュメントの例を次に示します。.exeVerQueryValue()

次の例は、使用可能なバージョンの言語を列挙し、各言語の FileDescription 文字列値を取得する方法を示しています。

VerQueryValue を呼び出す前に、必ずGetFileVersionInfoSizeおよびGetFileVersionInfo関数を呼び出して、 pBlockバッファーを適切に初期化してください

// Structure used to store enumerated languages and code pages.

HRESULT hr;

struct LANGANDCODEPAGE {
  WORD wLanguage;
  WORD wCodePage;
} *lpTranslate;

// Read the list of languages and code pages.

VerQueryValue(pBlock, 
              TEXT("\\VarFileInfo\\Translation"),
              (LPVOID*)&lpTranslate,
              &cbTranslate);

// Read the file description for each language and code page.

for( i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
  hr = StringCchPrintf(SubBlock, 50,
            TEXT("\\StringFileInfo\\%04x%04x\\FileDescription"),
            lpTranslate[i].wLanguage,
            lpTranslate[i].wCodePage);
  if (FAILED(hr))
  {
  // TODO: write error handler.
  }

  // Retrieve file description for language and code page "i". 
  VerQueryValue(pBlock, 
                SubBlock, 
                &lpBuffer, 
                &dwBytes); 
}
于 2012-08-07T10:01:12.037 に答える