如何获取进程描述?

ami*_*mad 2 c++ windows

我想在 Windows 中使用 C++ 获取进程的描述(在任务管理器中看到的描述)。

jco*_*der 5

您很可能希望使用API 调用从程序FileDesription.exe文件的版本资源中获取该字段VerQueryValue()。这是该文档中的一个示例:

以下示例显示如何枚举可用的版本语言并检索每种语言的 FileDescription 字符串值。

在调用VerQueryValue以正确初始化pBlock缓冲区之前,请务必调用GetFileVersionInfoSizeGetFileVersionInfo函数。

// 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); 
}
Run Code Online (Sandbox Code Playgroud)