python开发的程序如何匹配屏幕分辨率,以编程方式更改windows分辨率

我使用下面的代码段通过python更改windows的屏幕分辨率,它适用于1366x768、1024x768、800x600分辨率。但它在1440x810分辨率下不起作用。这里怎么了?在import ctypes

import struct

import sys

def set_res(width, height, bpp=32):

DM_BITSPERPEL = 0x00040000

DM_PELSWIDTH = 0x00080000

DM_PELSHEIGHT = 0x00100000

CDS_UPDATEREGISTRY = 0x00000001

SIZEOF_DEVMODE = 148

user32 = ctypes.WinDLL('user32.dll')

DevModeData = struct.calcsize("32BHH") * '\x00'

DevModeData += struct.pack("H", SIZEOF_DEVMODE)

DevModeData += struct.calcsize("H") * '\x00'

dwFields = (width and DM_PELSWIDTH or 0) | (height and DM_PELSHEIGHT or 0) | (bpp and DM_BITSPERPEL or 0)

DevModeData += struct.pack("L", dwFields)

DevModeData += struct.calcsize("l9h32BHL") * '\x00'

DevModeData += struct.pack("LLL", bpp or 0, width or 0, height or 0)

DevModeData += struct.calcsize("8L") * '\x00'

result = user32.ChangeDisplaySettingsA(DevModeData, CDS_UPDATEREGISTRY)

return result == 0 # success if zero, some failure otherwise

if(__name__ == "__main__"):

result = set_res(1440, 810)

sys.exit(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值