win32: 获取显示器当前的DEVMODE

2 投票
2 回答
1613 浏览
提问于 2025-04-16 07:11

我想知道在win32系统中,怎么获取当前的屏幕分辨率。我知道可以用GetMonitorInfo这个函数来获取显示器的当前边界矩形,但我还想知道怎么获取颜色深度。简单来说,我该怎么获取某个显示器的DEVMODE结构体?

我在用python和pywin32,所以如果能针对这两个提供解决方案就更好了,不过只要是winapi的调用也可以。

2 个回答

0

你需要使用 EnumDisplayMonitors 这个函数,它会对每个显示器调用一个回调函数,并传递显示器的矩形区域和一个设备上下文(里面包含了颜色信息)。

pywin32 提供了 win32api.EnumDisplayMonitors,这个看起来是用 EnumDisplayMonitors 来实现的,返回的列表包含了我上面提到的相同信息。

1

除了Dean提到的EnumDisplayMonitors函数,你还需要用到GetDeviceCaps()这个函数。看看它的参数BITSPIXEL:这个参数告诉你每个像素有多少个相邻的颜色位。

撰写回答