查看: 83  |  回复: 0
  Python与VB6通过COM组件联合编程
楼主
发表于 2024年10月2日 10:41

因为VB6提供了非常方便的“所见即所得”的界面方法,Python有强大的编程功能。

所以我们就使用COM组件,让VB6的界面与Python的功能联系在一起。

书上说:COM组件服务是提供一种独立于平台与编程语言之外的,共享二进制代码的方法。

翻译成人话:COM组件可以让不同的编程语言之间互相通信,至于它们之间说英语还是法语,我们现在不用关心。

先给大家两小段基本的代码,先理解原理,其它的就好办了。

1、先用Python注册COM服务,并在Python服务中写一个最简单的加法函数。

# coding=UTF8
#需要先安装pypiwin32模块 和pywin32模块
import pythoncom

class PythonDemo:
    _public_methods_ = ['Test']
    _reg_progid_ = 'Demos'
   # clsid=pythoncom.CreateGuid()#先用这个函数注册一个clsid
    _reg_clsid_ = clsid

    def Test(self, val, val2):
        val = val + val2
        return val
        
if __name__ == '__main__':


    import win32com.server.register
    print('启动COM服务.')
    win32com.server.register.UseCommandLine(PythonDemo)

2、到VB6中设计一个简单的界面,写几行代码。

Private Sub Command1_Click()

    Set PythonUtils = CreateObject("Demos")
    response = PythonUtils.Test(a, b)

    a = Val(Text1.Text)
    b = Val(Text2.Text)
    Print response
End Sub

3、先运行Python代码,然后WINDOWS要多管闲事的问一下,这个程序你让不让他运行。点“是”就可以启动COM组件服务,再到VB6中调用即可。

在VB6界面中输入1和2,在Python中计算加法,VB6中打印出结果。

很厉害吧!

1楼
发表于 2024年10月2日 10:45

‌COM(Component Object Model,组件对象模型)是一种由微软开发的组件技术,用于在不同的应用程序之间进行通信和交互。‌ 它的核心概念是将功能独立的代码封装为组件,每个组件具有自己的接口和实现。组件可以被其他应用程序通过COM接口调用和使用,实现了组件的复用和跨应用程序的互操作性‌。

在VB6(Visual Basic 6)中,可以使用VB6编写COM组件,这些组件通常表现为一个.dll文件,是一个编译好了的可执行程序。编写COM组件的过程包括在VB6中创建一个新的ActiveX DLL项目,编写所需的代码,然后将项目编译成一个DLL文件。这个DLL文件可以在其他支持COM的应用程序中调用,例如在ASP页面中被调用,或者在AutoCAD中使用VBA进行调用‌。

要让COM组件在特定应用程序中自动启动,例如在AutoCAD启动时自动加载COM组件,可以通过修改注册表项来实现。具体步骤包括在注册表中创建一个项来指示应用程序在启动时加载COM组件,并指定组件的路径和描述。这样,当AutoCAD启动时,它会加载并运行指定的COM组件‌。


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com