Windwos C语言获取进程的文件厂商
时间: 2023-10-08 07:04:32 浏览: 107
可以使用Windows API函数`GetFileVersionInfo`和`VerQueryValue`来获取进程的文件厂商。
具体步骤如下:
1. 使用`GetModuleFileName`函数获取当前进程的文件路径。
2. 使用`GetFileVersionInfoSize`函数获取文件版本信息的大小。
3. 使用`GetFileVersionInfo`函数获取文件版本信息。
4. 使用`VerQueryValue`函数获取文件版本信息中的文件厂商信息。
示例代码如下:
```c
#include <Windows.h>
#include <stdio.h>
int main()
{
TCHAR szFilePath[MAX_PATH];
GetModuleFileName(NULL, szFilePath, MAX_PATH);
DWORD dwHandle;
DWORD dwSize = GetFileVersionInfoSize(szFilePath, &dwHandle);
if (dwSize == 0)
{
printf("GetFileVersionInfoSize failed\n");
return 1;
}
LPVOID lpData = malloc(dwSize);
if (lpData == NULL)
{
printf("malloc failed\n");
return 1;
}
if (!GetFileVersionInfo(szFilePath, dwHandle, dwSize, lpData))
{
printf("GetFileVersionInfo failed\n");
free(lpData);
return 1;
}
LPVOID lpBuffer;
UINT uLen;
if (VerQueryValue(lpData, _T("\\StringFileInfo\\040904B0\\CompanyName"), &lpBuffer, &uLen))
{
printf("Company Name: %ls\n", (LPCTSTR)lpBuffer);
}
else
{
printf("VerQueryValue failed\n");
}
free(lpData);
return 0;
}
```
其中,`040904B0`是语言和代码页的标识符,可根据实际情况进行修改。
阅读全文