我一直用
启动itunestry:
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。
为什么会失败?
答案 0 :(得分:1)
尝试使用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')