gpt4 book ai didi

python - 了解如何在 Python 中使用 COM

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:11 27 4
gpt4 key购买 nike

我正在尝试使用 COM 在 python 中实现与 VB 程序等效的程序。以下是 VB 程序中的相关行:

eConCall = New Microsoft.Dynamics.GP.eConnect.eConnectMethods
eConCall.eConnect_EntryPoint(sConnectionString, EnumTypes.ConnectionStringType.SqlClient, myXmlDocument, EnumTypes.SchemaValidationType.None)

在 Python 中,我正在做:

import win32com.client
eConCall = win32com.client.Dispatch("Microsoft.Dynamics.GP.eConnect.eConnectMethods")

但是 eConCall 没有 eConnect_EntryPoint 方法。事实上它似乎没有任何方法:

eConCall = win32com.client.gencache.EnsureDispatch("Microsoft.Dynamics.GP.eConnect.eConnectMethods")
dir(eConCall)

打印:

['CLSID', '_ApplyTypes_', '__doc__', '__eq__', '__getattr__', 
'__init__', '__module__', '__ne__', '__repr__', '__setattr__',
'_get_good_object_', '_get_good_single_object_', '_oleobj_',
'_prop_map_get_', '_prop_map_put_', 'coclass_clsid']

我很确定我误解了应该如何使用 Dispatch 以及我应该如何在 Python 中访问 eConnectMethods。好心人可以帮帮我吗?我如何获得 eConnectMethods 的实例,以便我可以在其上调用 eConnect_EntryPoint

最佳答案

我认为,您看不到任何方法,因为您拥有所谓的后期绑定(bind),这意味着无论您尝试调用什么,都会在运行时通过标准 COM IDispatch 接口(interface)以及在您使用有效方法时进行检查/属性 - 它只是工作。或者你会得到运行时错误,就像在 VBScript 中一样。

对于后期绑定(bind)的试错,您的任务似乎并不容易,也许您想要检查早期绑定(bind)的选项 - 检查此链接 - http://oreilly.com/catalog/pythonwin32/chapter/ch12.html .

我还建议您尝试一些更简单的 COM 示例,这将帮助您熟悉在 Python 中使用 IDispatch,即通过检查在线提供的更简单的 Excel 或 Word 自动化示例。

更新 好的,我错过了您已经尝试创建早期绑定(bind)包装器。查看 makepy.py 的结果(位于\Lib\site-packages\win32com\gen_py\.py 中的某处)并将其与 COM 服务器的 IDL 进行比较。也许该方法仍然可以通过后期绑定(bind)使用,尽管由于某种原因它没有进入包装器..

关于python - 了解如何在 Python 中使用 COM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111799/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com