C++写完整代码,获取当前windows系统下所有monitor名字
时间: 2024-10-12 13:05:54 浏览: 32
TrafficMonitor_C++网速监控工具(转)_网速监控_
5星 · 资源好评率100%
在C++中,你可以使用Windows API函数来获取系统的显示器信息。下面是一个简单的示例,展示了如何使用`EnumDisplayMonitors`函数从头开始遍历并获取每个显示器的名字。请注意,这个例子假设你已经有了对Windows API的基本理解和包含必要的头文件。
```cpp
#include <windows.h>
#include <tchar.h>
#include <vector>
std::wstring getMonitorName(HMONITOR hMonitor) {
MONITORINFOEX monitorInfo = { sizeof(MONITORINFOEX), };
if (!GetMonitorInfo(hMonitor, &monitorInfo)) {
return L"Failed to get monitor info";
}
return monitorInfo.szDevice;
}
void listMonitors() {
HMONITOR monitors[MONITORS_DEFAULT] = { NULL };
DWORD count = MonitorFromWindow(NULL, MONITOR_DEFAULTTONEAREST, monitors);
if (count == 0) {
printf("No monitors found.\n");
return;
}
std::vector<std::wstring> monitorNames(count);
for (int i = 0; i < count; ++i) {
monitorNames[i] = getMonitorName(monitors[i]);
wprintf(L"Monitor %d: %s\n", i + 1, monitorNames[i].c_str());
}
}
int main() {
listMonitors();
return 0;
}
```
在这个代码片段中,`listMonitors`函数首先创建一个存储监视器句柄的数组,然后调用`MonitorFromWindow`获取默认最近的一个显示器。然后,它使用`GetMonitorInfo`获取每个显示器的信息,并打印出名称。
阅读全文