gpt4 book ai didi

python - 仅镜像屏幕旋转 - Python

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:01 27 4
gpt4 key购买 nike

我在程序化显示器轮换方面遇到问题

import win32api as win32
import win32con
MY_SCREEN_NUMBER = 1
device = win32.EnumDisplayDevices(None,MY_SCREEN_NUMBER)
dm = win32.EnumDisplaySettings(device.DeviceName,win32con.ENUM_CURRENT_SETTINGS)
dm.DisplayOrientation = win32con.DMDO_180
dm.Fields = dm.Fields & win32con.DM_DISPLAYORIENTATION
win32.ChangeDisplaySettingsEx(device.DeviceName,dm)

代码仅向相反方向旋转屏幕,例如

  • 如果屏幕位于 win32con.DMDO_DEFAULT 中,则只能在 win32con.DMDO_180 中旋转屏幕,
  • 如果 win32con.DMDO_90 中的屏幕仅在 win32con.DMDO_270 中旋转
  • 否则它会给我 -2 (DISP_CHANGE_BADMODE) 错误代码

但我可以使用 Windows 图形屏幕参数设置成功旋转它

如何正确旋转屏幕?

最佳答案

def rotateTo(degree):
import win32api as win32
import win32con
MY_SCREEN_NUMBER = 1
device = win32.EnumDisplayDevices(None,MY_SCREEN_NUMBER)
dm = win32.EnumDisplaySettings(device.DeviceName,win32con.ENUM_CURRENT_SETTINGS)
newDisplayOrientationInWin32Format = degree/90
currentDisplayOrientationInWin32Format = dm.DisplayOrientation
if(newDisplayOrientationInWin32Format + currentDisplayOrientationInWin32Format) % 2 == 1 : #test the new resolution on the perpendicular to the previous
tmp = dm.PelsHeight
dm.PelsHeight=dm.PelsWidth
dm.PelsWidth=tmp
dm.DisplayOrientation = newDisplayOrientationInWin32Format
return win32.ChangeDisplaySettingsEx(device.DeviceName,dm)

我检查了https://msdn.microsoft.com/en-us/library/ms812499.aspx并找到了 C 示例,我需要交换高度和宽度,但他们不会在与前一个垂直的方向上测试新分辨率。我通过此测试更新了代码,它开始在任何可能的屏幕方向上工作。

关于python - 仅镜像屏幕旋转 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46454713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com