如果你希望获取比较新的显示器信息,你可以考虑使用 Microsoft Windows Management Instrumentation (WMI) 来获取显示器的信息。
你可以使用 WMI 的 Win32_DesktopMonitor 类来获取显示器的信息,其中的 MonitorManufacturer 属性代表显示器的制造商名称,MonitorType 属性代表显示器的类型,Caption 属性代表显示器的名称。
如果你想要使用 WMI,你可以使用 WMI 的查询语言(WQL)来查询 Win32_DesktopMonitor 类的信息,例如:
SELECT * FROM Win32_DesktopMonitor
你也可以使用 WMI 的 C++ 接口来访问 Win32_DesktopMonitor 类的信息。下面是一个使用 WMI C++ 接口来获取显示器信息的例子:
#include <iostream>
#include <comdef.h>
#include <Wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
int main()
{
HRESULT hres;
// 初始化 COM
hres = CoInitializeEx(0, COINIT_MULTITHREADED);
if (FAILED(hres))
{
std::cout << "Failed to initialize COM library. Error code = 0x"
<< std::hex << hres << std::endl;
return 1;
}
// 设置验证 COM 的安全级别
hres = CoInitializeSecurity(
NULL,
-1,
NULL,
NULL,
RPC_C_AUTHN_LEVEL_DEFAULT,
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL,
EOAC_NONE,
NULL
);
if (FAILED(hres))
{
std::cout << "Failed to initialize security. Error code = 0x"
<< std::hex << hres << std::endl;
CoUninitialize();
return 1;
}
// 获取本地计算机名
char szName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD dwSize = MAX_COMPUTERNAME_LENGTH + 1;
GetComputerName(szName, &dwSize);
// 初始化本地