[Tutor] (no subject)

Tim Golden Tim.Golden at viacom-outdoor.co.uk
Fri Nov 24 15:49:57 CET 2006

[Gardner, Dean]

| I was wondering if anyone knew how to control the desktop 
| resolution via python. 
| What I ideally need is a small app that will swap resolution 
| between 1600*1200 and 1280*1024 

OK. Had a bit of time to look into this. The following code
snippet is (hopefully) fairly self-explanatory, the only
exception being the mild shenanigans one has to go through
to pick a display mode. Let's assume your two "keys" are:

Depth: 32
Freq: 70

Width: 1600 <-> 1280
Height: 1200 <-> 1024

First, find your display modes:


import os, sys

import win32api
import win32con
import pywintypes

display_modes = {}
n = 0
while True:
    devmode = win32api.EnumDisplaySettings (None, n)
  except pywintypes.error:
    key = (
    display_modes[key] = devmode
    n += 1


You now have a dictionary [display_modes], keyed on the
height, width and depth needed. All you have to do to
switch is something like this:


mode_required = (32, 1600, 1280, 70)
devmode = display_modes[mode_required]
win32api.ChangeDisplaySettings (devmode, 0)

# ... time passes

mode_required = (32, 1280, 1024, 70)
devmode = display_modes[mode_required]
win32api.ChangeDisplaySettings (devmode, 0)


and so on. Obviously, this is *very* bare bones, (and untested) 
but it should get you started.


This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:

More information about the Tutor mailing list