使用Python和IActiveDesktop设置Windows 7壁纸
我一直在寻找如何使用 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, '未指定的错误', None, None)
因为我对 pythoncom 还不太熟悉,所以我不知道自己哪里出错了。
请注意,我不想使用 SystemParametersInfo,因为它似乎没有 IActiveDesktop 的渐变效果。
1 个回答
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)