def SetDisplayMode(self, size, frequency, bitdepth, flags=0): devMode = DEVMODE() devMode.dmSize = sizeof(DEVMODE) devMode.dmPelsWidth = size[0] devMode.dmPelsHeight = size[1] devMode.dmBitsPerPel = bitdepth devMode.dmDisplayFrequency = frequency devMode.dmFields = ( DM_BITSPERPEL |DM_PELSWIDTH |DM_PELSHEIGHT |DM_DISPLAYFREQUENCY ) ChangeDisplaySettingsEx(self.deviceName, pointer(devMode), 0, flags, 0)
def SetDisplayModes(*args): for ( deviceName, x, y, width, height, freq, bitdepth, isAttached, isPrimary, displayFlags ) in args: devMode = DEVMODE() devMode.dmSize = sizeof(DEVMODE) if isAttached: devMode.dmPosition.x = x devMode.dmPosition.y = y devMode.dmPelsWidth = width devMode.dmPelsHeight = height devMode.dmBitsPerPel = bitdepth devMode.dmDisplayFrequency = freq devMode.dmDisplayFlags = displayFlags devMode.dmFields = ( DM_POSITION |DM_BITSPERPEL |DM_PELSWIDTH |DM_PELSHEIGHT |DM_DISPLAYFLAGS |DM_DISPLAYFREQUENCY ) flags = (CDS_UPDATEREGISTRY | CDS_NORESET) if isPrimary: flags |= CDS_SET_PRIMARY ChangeDisplaySettingsEx(deviceName, pointer(devMode), 0, flags, 0) ChangeDisplaySettingsEx(None, None, 0, 0, 0)