问题描述
我正在尝试连接 StepOver 签名板以进行签名捕获和保存,但不幸的是我被卡住了。之前从未与 python 或 django 应用程序做过任何硬件集成。
他们提供了一个用 C++ 和 delphi 编写的驱动程序,我安装在我的本地系统上。 我注册了提供的 .ocx 并且能够在 win32com.client.makepy -i 中选择以生成缓存模块。
我可以加载生成的提供所有接口的模块
from win32com.client import gencache
so=gencache.EnsureModule('{B23ECB86-5295-4DA7-BCBC-E564AB5A7334}',1,0)
但是从这里开始问题开始了,因为我无法使用
访问任何模块类device_interface=win32com.client.dispatch("StepOverSignatureDevice1.StepOverSignatureDevice")
它抛出
Traceback (most recent call last):
File "C:\python\lib\site-packages\win32com\client\dynamic.py",line 81,in _GetGooddispatch
Idispatch = pythoncom.connect(Idispatch)
pywintypes.com_error: (-2147221021,'Operation unavailable',None,None)
在处理上述异常的过程中,又发生了一个异常:
Traceback (most recent call last):
File ".\so_ocx.py",line 17,in <module>
win32com.client.dispatch("StepOverSignatureDevice1.StepOverSignatureDevice")
File "C:\python\lib\site-packages\win32com\client\__init__.py",line 95,in dispatch
dispatch,userName = dynamic._GetGooddispatchAndUserName(dispatch,userName,clsctx)
File "C:\python\lib\site-packages\win32com\client\dynamic.py",line 98,in
_GetGooddispatchAndUserName
return (_GetGooddispatch(Idispatch,clsctx),userName)
File "C:\python\lib\site-packages\win32com\client\dynamic.py",line 83,in _GetGooddispatch
Idispatch = pythoncom.CoCreateInstance(Idispatch,clsctx,pythoncom.IID_Idispatch)
pywintypes.com_error: (-2147221164,'Class not registered',None)```
我什至尝试过
device_interface =
win32com.client.gencache.GetModuleForProgID("StepOverSignatureDevice1.StepOverSignatureDevice")
它不会抛出任何错误,但经过几步
device_interface =
win32com.client.gencache.GetModuleForProgID("StepOverSignatureDevice1.StepOverSignatureDevice")
print(device_interface)
但是在我尝试访问之后
device_driver.default_interface
它抛出
Traceback (most recent call last):
File ".\so_ocx.py",line 20,in <module>
das.default_interface
AttributeError: module 'win32com.gen_py.B23ECB86-5295-4DA7-BCBC-E564AB5A7334x0x1x5' has no attribute
'default_interface'
但是如果我使用另一种 gencahe 方法
它可以工作并且在访问其方法或属性时不会抛出任何错误 当我尝试从界面访问任何方法时,它会出现错误。
device_inteface.default_interface.isPadavAvailable()
Traceback (most recent call last):
File ".\so_ocx.py",in <module>
device_inteface.default_interface.isPadavAvailable()
TypeError: isPadavAvailable() missing 1 required positional argument: 'self'
device_inteface.default_interface.isPadavAvailable(device_inteface)
Traceback (most recent call last):
File ".\so_ocx.py",in <module>
das.default_interface.isPadavAvailable(das)
File "C:\Users\INFI\AppData\Local\Temp\gen_py\3.8\B23ECB86-5295-4DA7-BCBC-E564AB5A7334x0x1x5.py",line 562,in isPadavAvailable
return self._oleobj_.InvokeTypes(29,LCID,(11,0),((8,1),),settings
AttributeError: type object 'StepOverSignatureDevice' has no attribute '_oleobj_'
我不知道如何处理这些错误甚至这个项目。
任何帮助或指导都是非常可观的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)