Gho*_*r21 5 windows winapi pywin32
我有两台显示器连接到我的Windows PC - 一台是普通显示器,另一台是投影仪.因为Windows不能一致地将一个或另一个指定为主监视器(部分原因是因为它们在Windows启动时并不总是都打开),所以我需要以编程方式检测哪个监视器是哪个.
控制面板在您选择的主监视器屏幕中将监视器的名称显示为"HP 2159"(普通监视器)和"PROJECTOR".这是我想要在我的程序中获得的信息.
我无法找到适合此信息的Win32 API函数.我都试过EnumDisplayDevices和EnumDisplayMontiors.两者都只是将"DISPLAY1"和"DISPLAY2"作为设备名称.我应该使用什么来获得"HP 2159"和"PROJECTOR"信息或类似的东西?
更新:这是我正在使用的Python代码:
>>> import win32api
>>> monitors = win32api.EnumDisplayMonitors()
>>> win32api.GetMonitorInfo(monitors[0][0])
{'Device': '\\\\.\\DISPLAY1', 'Work': (0, 0, 1920, 1080), 'Flags': 1, 'Monitor': (0, 0, 1920, 1080)}
>>> win32api.GetMonitorInfo(monitors[1][0])
{'Device': '\\\\.\\DISPLAY2', 'Work': (1920, 0, 3360, 1080), 'Flags': 0, 'Monitor': (1920, 0, 3360, 1080)}
Run Code Online (Sandbox Code Playgroud)
将EnumDisplayMonitors监视器句柄传递给MonitorEnumProc回调函数。您可以将该句柄传递给GetMonitorInfo,确保传递一个指向MonitorInfoEx结构的指针并相应地设置cbSize成员。
返回后,结构szDevice中的字段MonitorInfoEx将包含监视器的名称。
| 归档时间: |
|
| 查看次数: |
2693 次 |
| 最近记录: |