栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 面试经验 > 面试问答

从.NET消耗Python COM Server

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从.NET消耗Python COM Server

COM服务器只是一个软件(DLL或可执行文件),它将通过已定义的协议接受远程过程调用(RPC)。该协议的一部分说,服务器必须具有存储在Windows注册表中的唯一ID。在我们的情况下,这意味着您已经“注册”了不存在的服务器。因此出现错误(找不到组件)。

因此,应该是这样(通常,这是未经测试的代码!):

import pythoncomclass HelloWorld:    _reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER    _reg_clsid_ = "{B83DD222-7750-413D-A9AD-01B37021B24B}"    _reg_desc_ = "Python Test COM Server"    _reg_progid_ = "Python.TestServer"    _public_methods_ = ['Hello']    _public_attrs_ = ['softspace', 'noCalls']    _readonly_attrs_ = ['noCalls']    def __init__(self):        self.softspace = 1        self.noCalls = 0    def Hello(self, who):        self.noCalls = self.noCalls + 1        # insert "softspace" number of spaces        return "Hello" + " " * self.softspace + str(who)if __name__ == '__main__':    if '--register' in sys.argv[1:]  or '--unregister' in sys.argv[1:]:        import win32com.server.register        win32com.server.register.UseCommandLine(HelloWorld)    else:        # start the server.        from win32com.server import localserver        localserver.serve('B83DD222-7750-413D-A9AD-01B37021B24B')

然后,您应该从命令行运行(假设脚本名为HelloWorldCOM.py):

HelloWorldCOM.py-注册HelloWorldCOM.py

类HelloWorld是服务器的实际实现。它公开了一个方法(Hello)和几个属性,这两个属性之一是只读的。使用第一个命令,注册服务器;在第二个应用程序中,您可以运行它,然后其他应用程序可以使用它。



转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/640143.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号