我一直在使用 itunes 启动
try:
itapp= win32com.client.Dispatch('iTunes.Application')
except:
itapp= win32com.client.GetActiveObject('iTunes.Application')
今天,每当我运行它时,如果 itunes 已经在运行,它就会失败
Traceback (most recent call last):
File "fix_m4a.py", line 63, in <module>
change_itunes_path(s,d)
File "fix_m4a.py", line 45, in change_itunes_path
itapp = win32com.client.GetActiveObject('iTunes.Application')
File "C:\program files\python27\lib\site-packages\win32com\client\__init__.py"
, line 79, in GetActiveObject
dispatch = pythoncom.GetActiveObject(resultCLSID)
pywintypes.com_error: (-2147221021, 'Operation unavailable', None, None)
如果 itunes 没有运行,工作正常
我最近所做的唯一更改是从 2.7.5 升级到 2.7.6。
为什么会失败?
请您参考如下方法:
尝试使用 comtypes Python 包 - 它对自定义 COM 对象有更好的支持。
代替
try:
itapp= win32com.client.Dispatch('iTunes.Application')
except:
itapp= win32com.client.GetActiveObject('iTunes.Application')
试试这个:
from comtypes.client import CreateObject, GetActiveObject
try:
itapp = CreateObject('iTunes.Application')
except:
itapp = GetActiveObject('iTunes.Application')
