Windows下使用Python调用com组件

1、下载pywin32
下载地址:点击下载
根据Python版本号下载对应的版本,注意:这里的32位和64位指的是Python,而不是操作系统。
安装过程中会检测本机已安装的Python,如果找不到,就是pywin32的版本下错了。
安装完成后,会在Python的根目录下的/Lib/site-packages/下生成win32、win32com和win32comext三个文件夹。里面都有Demos,很适合入门。

2、生成com组件对应的.py文件
双击/win32com/client/目录中 的makepy.py,会弹出当前机器中的所有com组件,如下图所示:

双击目标com组件,在/win32com/gen_py/目录下会生成该组件对应的.py文件。

3、调用com组件
代码中import win32com.client,并使用win32com.client.Dispatch()或者win32com.client.DispatchWithEvents()取的com组件中的类对象。
Dispatch()只有一个参数,为需要创建的类名。在生成.py文件中,可以找到需要创建的类对应的类名,例如:

如果要创建EloamGlobal类对象,该参数应该为”EloamGlobal.Instance.1”。
如果该com组件有回调事件,需要使用DispatchWithEvents(),该函数有两个参数,第一个参数与Dispatch()相同,第二参数为自定义的类名。例如:

class EloamGlobalEvents:
    def OnDevChange(self, type, idx, dbt):
        pass
    def OnIdCard(self, ret=pythoncom.Empty):
        pass

第二参数应该EloamGlobalEvents,该类需要实现的方法在生成的.py中的注释中。
如果需要传递参数到EloamGlobalEvents中,可以把EloamGlobalEvents定义为内部类,在EloamGlobalEvents中就能访问外部类的变量了。

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值