我一直在寻找如何使用IActiveDesktop来更改壁纸,并将来自各种来源的以下代码拼凑在一起。
sys.coinit_flags = 0
pythoncom.CoInitialize()
iad = pythoncom.CoCreateInstance(shell.CLSID_ActiveDesktop, None, pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IActiveDesktop)
iad.SetWallpaper(bmpPath)
iad.ApplyChanges(7)
我收到以下错误:
pywintypes.com_error: (-2147467259, 'Unspecified error', None, None)
由于我不熟悉如何使用pythoncom,我真的不知道我在这里做错了什么。
请注意,我不想使用SystemParametersInfo,因为它没有IActiveDesktop显然具有的淡入淡出效果。
答案 0 :(得分:0)
我认为你只是错过了SetWallPaper
的第二个参数,它应该始终为0。
这对我有用:
import pythoncom
from win32com.shell import shell, shellcon
imagePath = "c:\\temp\\bug.png"
iad = pythoncom.CoCreateInstance(shell.CLSID_ActiveDesktop, None,
pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IActiveDesktop)
iad.SetWallpaper(imagePath, 0)
iad.ApplyChanges(shellcon.AD_APPLY_ALL)