2017-09-27 18 views
0

나는만 미러 화면 회전 - 파이썬

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_270에서만 회전하는 경우
  • 그렇지 않으면 -2 (DISP_CHANGE_BADMODE) 오류 대구 전자

하지만 난이 성공적으로 어떻게 제대로 화면을 회전 할 창문 그래픽 화면 PARAMS 설정

그것을 회전 할 수 있습니까?

내가 https://msdn.microsoft.com/en-us/library/ms812499.aspx을 확인하고 C의 예를 발견

답변

0
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) 

, 내가 높이와 너비를 교환 할 필요가 있지만, 그들은 이전에 수직에 새로운 해상도를 테스트하지 않습니다. 이 테스트로 코드를 업데이트하면 가능한 모든 화면 방향으로 작업하기 시작합니다.