我试图在每次修改注册表值时触发一个事件。Python win32api注册表项更改
import win32api
import win32event
import win32con
import _winreg
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Control Panel\Desktop',0,_winreg.KEY_READ)
sub_key = _winreg.CreateKey(key,'Wallpaper')
evt = win32event.CreateEvent(None,0,0,None)
win32api.RegNotifyChangeKeyValue(sub_key,1,win32api.REG_NOTIFY_CHANGE_ATTRIBUTES,evt,True)
ret_code=win32event.WaitForSingleObject(evt,3000)
if ret_code == win32con.WAIT_OBJECT_0:
print "CHANGED"
if ret_code == win32con.WAIT_TIMEOUT:
print "TIMED"
我的问题是,这是从来没有触发过,事件总是超时。 (我试图遵循了reg关键是墙纸)
[
请注意我触发1时)在注册表编辑器2)运行这个自动运行的脚本手动更改注册表值:
从ctypes的导入WINDLL
从win32con进口*
windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER,0,“C:\ wall.jp g“,SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE)
]
感谢提前任何帮助:)
编辑::关于格式化