【发布时间】:2011-05-11 04:14:24
【问题描述】:
如何在 win32 中获取当前分辨率?我知道我可以使用GetMonitorInfo 来获取显示器的当前边界矩形,但是我怎样才能得到位深度呢?差不多,我如何获得给定监视器的DEVMODE 结构?
我使用的是 python 和 pywin32,因此专门解决这些问题的解决方案很好,但只需 winapi 调用即可。
【问题讨论】:
标签: python winapi monitor pywin32
如何在 win32 中获取当前分辨率?我知道我可以使用GetMonitorInfo 来获取显示器的当前边界矩形,但是我怎样才能得到位深度呢?差不多,我如何获得给定监视器的DEVMODE 结构?
我使用的是 python 和 pywin32,因此专门解决这些问题的解决方案很好,但只需 winapi 调用即可。
【问题讨论】:
标签: python winapi monitor pywin32
除了 Dean 的回答中提到的 EnumDisplayMonitors 函数之外,您还需要 GetDeviceCaps()。请参阅参数 BITSPIXEL:它为您提供每个像素的相邻颜色位数。
【讨论】:
GetWindowDC 和 GetDeviceCaps 效果很好,谢谢!
您需要使用EnumDisplayMonitors 函数,该函数为每个监视器调用回调并传递矩形和设备上下文(包括颜色信息)。
pywin32 有 win32api.EnumDisplayMonitors,它似乎在幕后使用 EnumDisplayMonitors 返回一个列表,其中包含与我上面提到的相同的详细信息。
【讨论】: