123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- import win32gui, win32con, win32api, time, os, glob
- ## some of these tests will fail for systems prior to XP
- for pname in(
- ## Set actions all take an unsigned int in pvParam
- "SPI_GETMOUSESPEED", "SPI_GETACTIVEWNDTRKTIMEOUT", "SPI_GETCARETWIDTH",
- "SPI_GETFOREGROUNDFLASHCOUNT", "SPI_GETFOREGROUNDLOCKTIMEOUT",
- ## Set actions all take an unsigned int in uiParam
- "SPI_GETWHEELSCROLLLINES", "SPI_GETKEYBOARDDELAY",
- "SPI_GETKEYBOARDSPEED",
- "SPI_GETMOUSEHOVERHEIGHT", "SPI_GETMOUSEHOVERWIDTH",
- "SPI_GETMOUSEHOVERTIME", "SPI_GETSCREENSAVETIMEOUT", "SPI_GETMENUSHOWDELAY",
- "SPI_GETLOWPOWERTIMEOUT", "SPI_GETPOWEROFFTIMEOUT", "SPI_GETBORDER",
- ## below are winxp only:
- "SPI_GETFONTSMOOTHINGCONTRAST", "SPI_GETFONTSMOOTHINGTYPE", "SPI_GETFOCUSBORDERHEIGHT",
- "SPI_GETFOCUSBORDERWIDTH", "SPI_GETMOUSECLICKLOCKTIME"):
- print(pname)
- cget=getattr(win32con,pname)
- cset=getattr(win32con,pname.replace('_GET','_SET'))
- orig_value=win32gui.SystemParametersInfo(cget)
- print('\toriginal setting:',orig_value)
- win32gui.SystemParametersInfo(cset, orig_value+1)
- new_value=win32gui.SystemParametersInfo(cget)
- print('\tnew value:',new_value)
- # On Vista, some of these values seem to be ignored. So only "fail" if
- # the new value isn't what we set or the original
- if new_value!=orig_value+1:
- assert new_value == orig_value
- print("Strange - setting %s seems to have been ignored" % (pname,))
- win32gui.SystemParametersInfo(cset, orig_value)
- assert win32gui.SystemParametersInfo(cget)==orig_value
- # these take a boolean value in pvParam
- # change to opposite, check that it was changed and change back
- for pname in ("SPI_GETFLATMENU","SPI_GETDROPSHADOW","SPI_GETKEYBOARDCUES","SPI_GETMENUFADE",
- "SPI_GETCOMBOBOXANIMATION", "SPI_GETCURSORSHADOW", "SPI_GETGRADIENTCAPTIONS", "SPI_GETHOTTRACKING",
- "SPI_GETLISTBOXSMOOTHSCROLLING", "SPI_GETMENUANIMATION", "SPI_GETSELECTIONFADE",
- "SPI_GETTOOLTIPANIMATION", "SPI_GETTOOLTIPFADE", "SPI_GETUIEFFECTS", "SPI_GETACTIVEWINDOWTRACKING",
- "SPI_GETACTIVEWNDTRKZORDER"):
- print(pname)
- cget=getattr(win32con,pname)
- cset=getattr(win32con,pname.replace('_GET','_SET'))
- orig_value=win32gui.SystemParametersInfo(cget)
- print(orig_value)
- win32gui.SystemParametersInfo(cset, not orig_value)
- new_value=win32gui.SystemParametersInfo(cget)
- print(new_value)
- assert orig_value!=new_value
- win32gui.SystemParametersInfo(cset, orig_value)
- assert win32gui.SystemParametersInfo(cget)==orig_value
- # these take a boolean in uiParam
- # could combine with above section now that SystemParametersInfo only takes a single parameter
- for pname in ("SPI_GETFONTSMOOTHING","SPI_GETICONTITLEWRAP","SPI_GETBEEP","SPI_GETBLOCKSENDINPUTRESETS",
- "SPI_GETKEYBOARDPREF","SPI_GETSCREENSAVEACTIVE","SPI_GETMENUDROPALIGNMENT",
- "SPI_GETDRAGFULLWINDOWS", "SPI_GETSHOWIMEUI"):
- cget=getattr(win32con,pname)
- cset=getattr(win32con,pname.replace('_GET','_SET'))
- orig_value=win32gui.SystemParametersInfo(cget)
- win32gui.SystemParametersInfo(cset, not orig_value)
- new_value=win32gui.SystemParametersInfo(cget)
- # Some of these also can't be changed (eg, SPI_GETSCREENSAVEACTIVE) so
- # don't actually get upset.
- if orig_value!=new_value:
- print("successfully toggled", pname, "from", orig_value, "to", new_value)
- else:
- print("couldn't toggle", pname, "from", orig_value)
- win32gui.SystemParametersInfo(cset, orig_value)
- assert win32gui.SystemParametersInfo(cget)==orig_value
- print("SPI_GETICONTITLELOGFONT")
- lf=win32gui.SystemParametersInfo(win32con.SPI_GETICONTITLELOGFONT)
- orig_height=lf.lfHeight
- orig_italic=lf.lfItalic
- print('Height:', orig_height, 'Italic:',orig_italic)
- lf.lfHeight+=2
- lf.lfItalic=not lf.lfItalic
- win32gui.SystemParametersInfo(win32con.SPI_SETICONTITLELOGFONT, lf)
- new_lf=win32gui.SystemParametersInfo(win32con.SPI_GETICONTITLELOGFONT)
- print('New Height:', new_lf.lfHeight, 'New Italic:',new_lf.lfItalic)
- assert new_lf.lfHeight==orig_height+2
- assert new_lf.lfItalic!=orig_italic
- lf.lfHeight=orig_height
- lf.lfItalic=orig_italic
- win32gui.SystemParametersInfo(win32con.SPI_SETICONTITLELOGFONT, lf)
- new_lf=win32gui.SystemParametersInfo(win32con.SPI_GETICONTITLELOGFONT)
- assert new_lf.lfHeight==orig_height
- assert new_lf.lfItalic==orig_italic
- print("SPI_GETMOUSEHOVERWIDTH, SPI_GETMOUSEHOVERHEIGHT, SPI_GETMOUSEHOVERTIME")
- w=win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERWIDTH)
- h=win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERHEIGHT)
- t=win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERTIME)
- print('w,h,t:', w,h,t)
- win32gui.SystemParametersInfo(win32con.SPI_SETMOUSEHOVERWIDTH,w+1)
- win32gui.SystemParametersInfo(win32con.SPI_SETMOUSEHOVERHEIGHT,h+2)
- win32gui.SystemParametersInfo(win32con.SPI_SETMOUSEHOVERTIME,t+3)
- new_w=win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERWIDTH)
- new_h=win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERHEIGHT)
- new_t=win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERTIME)
- print('new w,h,t:', new_w, new_h, new_t)
- assert new_w==w+1
- assert new_h==h+2
- assert new_t==t+3
- win32gui.SystemParametersInfo(win32con.SPI_SETMOUSEHOVERWIDTH,w)
- win32gui.SystemParametersInfo(win32con.SPI_SETMOUSEHOVERHEIGHT,h)
- win32gui.SystemParametersInfo(win32con.SPI_SETMOUSEHOVERTIME,t)
- new_w=win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERWIDTH)
- new_h=win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERHEIGHT)
- new_t=win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERTIME)
- assert new_w==w
- assert new_h==h
- assert new_t==t
- print("SPI_SETDOUBLECLKWIDTH, SPI_SETDOUBLECLKHEIGHT")
- x=win32api.GetSystemMetrics(win32con.SM_CXDOUBLECLK)
- y=win32api.GetSystemMetrics(win32con.SM_CYDOUBLECLK)
- print('x,y:', x, y)
- win32gui.SystemParametersInfo(win32con.SPI_SETDOUBLECLKWIDTH, x+1)
- win32gui.SystemParametersInfo(win32con.SPI_SETDOUBLECLKHEIGHT, y+2)
- new_x=win32api.GetSystemMetrics(win32con.SM_CXDOUBLECLK)
- new_y=win32api.GetSystemMetrics(win32con.SM_CYDOUBLECLK)
- print('new x,y:', new_x, new_y)
- assert new_x==x+1
- assert new_y==y+2
- win32gui.SystemParametersInfo(win32con.SPI_SETDOUBLECLKWIDTH, x)
- win32gui.SystemParametersInfo(win32con.SPI_SETDOUBLECLKHEIGHT, y)
- new_x=win32api.GetSystemMetrics(win32con.SM_CXDOUBLECLK)
- new_y=win32api.GetSystemMetrics(win32con.SM_CYDOUBLECLK)
- assert new_x==x
- assert new_y==y
- print("SPI_SETDRAGWIDTH, SPI_SETDRAGHEIGHT")
- dw=win32api.GetSystemMetrics(win32con.SM_CXDRAG)
- dh=win32api.GetSystemMetrics(win32con.SM_CYDRAG)
- print('dw,dh:', dw, dh)
- win32gui.SystemParametersInfo(win32con.SPI_SETDRAGWIDTH,dw+1)
- win32gui.SystemParametersInfo(win32con.SPI_SETDRAGHEIGHT,dh+2)
- new_dw=win32api.GetSystemMetrics(win32con.SM_CXDRAG)
- new_dh=win32api.GetSystemMetrics(win32con.SM_CYDRAG)
- print('new dw,dh:', new_dw, new_dh)
- assert new_dw==dw+1
- assert new_dh==dh+2
- win32gui.SystemParametersInfo(win32con.SPI_SETDRAGWIDTH,dw)
- win32gui.SystemParametersInfo(win32con.SPI_SETDRAGHEIGHT,dh)
- new_dw=win32api.GetSystemMetrics(win32con.SM_CXDRAG)
- new_dh=win32api.GetSystemMetrics(win32con.SM_CYDRAG)
- assert new_dw==dw
- assert new_dh==dh
- orig_wallpaper=win32gui.SystemParametersInfo(Action=win32con.SPI_GETDESKWALLPAPER)
- print('Original: ',orig_wallpaper)
- for bmp in glob.glob(os.path.join(os.environ['windir'],'*.bmp')):
- print(bmp)
- win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, Param=bmp)
- print(win32gui.SystemParametersInfo(Action=win32con.SPI_GETDESKWALLPAPER))
- time.sleep(1)
- win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, Param=orig_wallpaper)
|