Skærmrotation i vinduer med python

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at skrive et python script til at rotere skærmen i Windows.

Jeg har spor af at gøre det med Win32api.

Hvad er de andre muligheder eller kommandoer for at opnå det (Win32api inkluderet).

Bedste reference


Dette er (en sligtly-modificeret version af) koden, der fungerede for mig fra svaret ovenfor, prvided af lbenini. Mulige skærmrotationsværdier er win32con.DMDO\_DEFAULT (0 °), win32con.DMDO\_90, win32con.DMDO\_180 og win32con.DMDO\_270 (man kan få en liste ved at skrive help(win32con))


import win32api as win32
import win32con

def printAllScreen():
    i = 0
    while True:
        try:
            device = win32.EnumDisplayDevices(None,i);
            print("[\%d] \%s (\%s)"\%(i,device.DeviceString,device.DeviceName));
            i = i+1;
        except:
            break;
    return i

screen\_count=printAllScreen()
x = int(input("
Enter a display number [0-\%d]: "\%screen\_count))


device = win32.EnumDisplayDevices(None,x);
print("Rotate device \%s (\%s)"\%(device.DeviceString,device.DeviceName));

dm = win32.EnumDisplaySettings(device.DeviceName,win32con.ENUM\_CURRENT\_SETTINGS)
dm.DisplayOrientation = win32con.DMDO\_180
dm.PelsWidth, dm.PelsHeight = dm.PelsHeight, dm.PelsWidth
dm.Fields = dm.Fields & win32con.DM\_DISPLAYORIENTATION
win32.ChangeDisplaySettingsEx(device.DeviceName,dm)

Andre referencer 1


Hvis du har den roterende genvej, der er aktiv i Windows (CTRL + ALT + PIL KEY), kan du bruge pyautogui.hotkey funktionen.