gpt4 book ai didi

c - 从 Windows 获取监视器元数据

转载 作者:行者123 更新时间:2023-11-30 19:01:37 24 4
gpt4 key购买 nike

我需要能够从显示器读取元数据,例如:gamma 和显示器名称,希望还有显示器大小。我需要调查注册表吗? (安装API???)

我尝试了 DXGI (IDXGIOutput::GetDesc) 和 WinAPI (EnumDisplayDevicesA)。

损坏:

HRESULT hr = IDXGIOutput1_GetDesc(output, &monitor_desc);
if(FAILED(hr)) {
assert(0);
}

printf("monitor name: %s\n", monitor_desc.Description);

也损坏了:

DISPLAY_DEVICE display_device_desc = { sizeof display_device_desc };
EnumDisplayDevices(NULL, 0, &display_device_desc, 0);
EnumDisplayDevices(display_device_desc.DeviceName,0,&display_device_desc, 0);
printf("monitor name: %s\n", display_device_desc.DeviceString);

我得到的是通用 PnP 监视器,而不是正确的名称 Hannspree HF225。

最佳答案

1.这个EnumDisplayDevices方法有效。

#include <Windows.h>
#include <iostream>
#include <string>

int main()
{
DISPLAY_DEVICE dd;
dd.cb = sizeof(dd);
int deviceIndex = 0;
while (EnumDisplayDevices(0, deviceIndex, &dd, 0))
{
std::wstring deviceName = dd.DeviceName;
int monitorIndex = 0;
while (EnumDisplayDevices(deviceName.c_str(), monitorIndex, &dd, 0))
{
std::wcout << dd.DeviceName << L", " << dd.DeviceString << L"\n";
++monitorIndex;
}
++deviceIndex;
}
return 0;
}
  • 还有一个 WMI method 。3...
  • 关于c - 从 Windows 获取监视器元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57503649/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com