我正在尝试将 ActiveX 自动化与 python 一起使用来控制 Audio Precision ATS-2。我正在使用 pywin32 32 位 Windows XP 和 Python 2.7。
我安装了音频精密软件。然后我使用了 makepy实用程序,它在列表中找到了 Audio Precision 并为其创建了一个包装器。一切都很顺利,直到我尝试调用调度函数 abd 我被卡住了。
根据我在网上找到的指南,
win32com.client.Dispatch("Excel.Application")
我应该在“Excel.Application”的区域放什么?
我怎样才能找到这个?
当我使用 OLE/COM 对象查看器时,我在类型库下看到音频精度条目,但我不确定其中的信息如何帮助我。
我自己尝试了几件事,但几乎没有结果。我得到的最好结果是当我输入了CLSID
in dispatch 函数时,我在 makepy 创建的包装对象中找到了它。
win32com.client.Dispatch("{80EC6E76-D94F-48EB-8F4C-05BDD7850BF1}")
这给了我以下错误:
Traceback (most recent call last):
File "C:\Python27\Lib\site-packages\win32com\gen_py\APtest.py", line 5, in <module>
xlApp = win32com.client.Dispatch("{80EC6E76-D94F-48EB-8F4C-05BDD7850BF1}")
File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 108, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147221164, 'Class not registered', None, None)
我有:
- 看了下注册表,ID确实没有在任何地方注册。Audio Precision 条目很少,但看起来没有任何东西可以解决这个问题。
- 尝试重新安装 Audio Precision 软件,但没有帮助。
- 试图在音频精度控制(ATS 1.60)软件中注册 dll 对象
regsrv32
,但都给出了错误并且不会注册(我怀疑这不是我需要注册的正确对象)
我怎样才能解决这个问题?