【问题标题】:win32: get current DEVMODE of a monitorwin32:获取显示器的当前 DEVMODE
【发布时间】:2011-05-11 04:14:24
【问题描述】:

如何在 win32 中获取当前分辨率?我知道我可以使用GetMonitorInfo 来获取显示器的当前边界矩形,但是我怎样才能得到位深度呢?差不多,我如何获得给定监视器的DEVMODE 结构?

我使用的是 python 和 pywin32,因此专门解决这些问题的解决方案很好,但只需 winapi 调用即可。

【问题讨论】:

    标签: python winapi monitor pywin32


    【解决方案1】:

    除了 Dean 的回答中提到的 EnumDisplayMonitors 函数之外,您还需要 GetDeviceCaps()。请参阅参数 BITSPIXEL:它为您提供每个像素的相邻颜色位数。

    【讨论】:

    • EnumDisplayMonitors 没有返回有效的 DC...但是使用 GetWindowDCGetDeviceCaps 效果很好,谢谢!
    【解决方案2】:

    您需要使用EnumDisplayMonitors 函数,该函数为每个监视器调用回调并传递矩形和设备上下文(包括颜色信息)。

    pywin32 有 win32api.EnumDisplayMonitors,它似乎在幕后使用 EnumDisplayMonitors 返回一个列表,其中包含与我上面提到的相同的详细信息。

    【讨论】:

    • 如何从设备上下文中获取颜色信息? pywin32 返回监视器句柄、设备上下文和一个带有监视器边界区域的 4 元组,但设备上下文似乎为 0……假设它是正确的,我如何从 HDC 获取颜色深度?
    猜你喜欢
    • 2014-05-07
    • 2011-11-24
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多