我正在尝试使用comtype 1.1.0包访问python 2.7.6.1中的COM对象,并且由于返回变量类型,我有一个从COM对象方法获得正确数据的基本问题
>>> from comtypes.client import CreateObject
>>> fm1 = CreateObject("MCB.PCM")
>>> fm1.ReadVariable("dwt")
(<comtypes.automation.LP_tagVARIANT object at 0x06A541C0>,<comtypes.automation.LP_tagVARIANT object at 0x06A54210>, <comtypes.automation.LP_tagVARIANT object at 0x06A54260>, True)如何转换python中的变量(变量指针)?
我是OLEViewer的
[id(0x60020002)]
VARIANT ReadVariable(
[in] VARIANT bsVar,
[out, optional] VARIANT* vValue,
[out, optional] VARIANT* tValue,
[out, optional] VARIANT* bsRetMsg);您有任何想法来转换它和更正数据从COM方法吗?
我应该使用pywin32 (win32com包)吗?
非常感谢。
彼得
发布于 2014-10-16 10:42:11
我不是蟒蛇专家,也是处理变体的专家。
这个“伪”代码可能会帮助您。
from ctypes import *
from comtypes import automation
if __name__ == '__main__':
...
bsVar = automation.VARIANT("dwt")
vValue = automation.VARIANT(0)
tValue = automation.VARIANT(0)
bsRetMsg = automation.VARIANT(0)
ReadVariable(bsVar, addressof(vValue), addressof(tValue), addressof(bsRetMsg))
...PS:
继续学习Python的工作原理,我认为,但没有经过测试,以下内容可能会奏效:
...
vValue,tValue,bsRetMsg = ReadVariable(automation.VARIANT("dwt"))
...https://stackoverflow.com/questions/24345405
复制相似问题