123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- import glob
- import os
- import time
-
- import win32api
- import win32con
- import win32gui
-
- ## 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)
|