使用python和IActiveDesktop在Windows 7中设置壁纸

时间:2011-02-24 17:36:03

标签: python windows

我一直在寻找如何使用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显然具有的淡入淡出效果。

1 个答案:

答案 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)

参考:IActiveDesktop::ApplyChanges Method