использование python и IActiveDesktop для установки обоев в windows 7 - PullRequest
0 голосов
/ 24 февраля 2011

Я искал, как использовать 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 голосов
/ 25 февраля 2011

Я думаю, что вы просто пропускаете второй параметр 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...