如何获取Windows所有屏幕?
时间: 2023-08-22 18:08:24 浏览: 147
windows电脑桌面屏幕鼠标坐标获取软件
你可以使用 Windows API 来获取所有屏幕。以下是一个示例代码,它演示了如何使用 EnumDisplayMonitors 函数来枚举所有屏幕,并获取每个屏幕的句柄和位置信息:
```
#include <Windows.h>
#include <vector>
BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
{
std::vector<HMONITOR>* monitors = reinterpret_cast<std::vector<HMONITOR>*>(dwData);
monitors->push_back(hMonitor);
return TRUE;
}
int main()
{
std::vector<HMONITOR> monitors;
EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, reinterpret_cast<LPARAM>(&monitors));
for (auto monitor : monitors)
{
MONITORINFOEX monitorInfo{};
monitorInfo.cbSize = sizeof(MONITORINFOEX);
GetMonitorInfo(monitor, &monitorInfo);
printf("Monitor handle: %p\n", monitor);
printf("Monitor position: (%d, %d)\n", monitorInfo.rcMonitor.left, monitorInfo.rcMonitor.top);
}
return 0;
}
```
该示例代码使用了 std::vector 来存储所有屏幕的句柄,然后使用 GetMonitorInfo 函数来获取每个屏幕的位置信息。你可以根据需要修改该示例代码。
阅读全文