【发布时间】:2012-04-02 19:01:30
【问题描述】:
这个问题是我previous question的延续。
我正在尝试使用PyWin32 为我的Windows 7 系统获取Network Statistics。
我遵循的步骤:
1) 运行
COM MakePy utility,然后在类型库下选择network list manager 1.0 type library。2) 上面的过程生成了这个python file。
接下来我使用
创建了类NetworkListManager(CoClassBaseClass) 的对象
import win32com.client as wc
obj = wc.Dispatch("{DCB00C01-570F-4A9B-8D69-199FDBA5723B}")
现在我正在尝试访问上面创建的对象obj提供的方法。
help(obj)给了我
GetNetwork(self, gdNetworkId= <PyOleEmpty object>)
Get a network given a Network ID.
已连接
Returns whether connected to internet or not
//Other methods removed
所以,现在当我使用
>>> obj.IsConnected
True
效果很好。
现在我面临的问题是如何使用GetNetowrk 方法,因为当我尝试使用它时
>>> obj.GetNetwork()
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
ret = self._oleobj_.InvokeTypes(2, LCID, 1, (9, 0), ((36, 1),),gdNetworkId
com_error: (-2147024809, 'The parameter is incorrect.', None, None)
我还尝试使用pythoncom.Empty 创建PyOleEmpty object,并将其作为参数传递,但没有成功。
我了解GetNetwork 需要NetworkID 作为参数,但GetNetworkId 方法是在INetwork 类中定义的。
所以我的问题是如何使用在使用MakePy utility 创建的不是CoClass 的python 文件中定义的类。
【问题讨论】: