Python PyWin32使用MakePy实用程序和Win32 COM获取网络统计信息
这个问题是我继续提出的 我正在尝试使用Python PyWin32使用MakePy实用程序和Win32 COM获取网络统计信息,python,windows,pywin32,Python,Windows,Pywin32,这个问题是我继续提出的 我正在尝试使用PyWin32获取我的windows7系统的网络统计信息 我遵循的步骤是: 1) 运行COM MakePy实用程序,然后选择网络列表管理器1.0 类型库下的类型库 2) 上面的过程生成了这个 接下来,我使用 import win32com.client as wc obj = wc.Dispatch("{DCB00C01-570F-4A9B-8D69-199FDBA5723B}") 现在我正在尝试访问上面创建的对象obj提供的方法 帮助(obj)给了我 G
PyWin32
获取我的windows7
系统的网络统计信息
我遵循的步骤是:
1) 运行COM MakePy实用程序
,然后选择网络列表管理器1.0
类型库下的类型库
2) 上面的过程生成了这个
接下来,我使用
import win32com.client as wc
obj = wc.Dispatch("{DCB00C01-570F-4A9B-8D69-199FDBA5723B}")
现在我正在尝试访问上面创建的对象obj提供的方法
帮助(obj)
给了我
GetNetwork(self,gdNetworkId=
)
断开连接
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)
obj.GetNetwork()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ret=self.\uOleObj.\uInvokeTypes(2,LCID,1,(9,0),((36,1),),gdNetworkId
com_错误:(-2147024809,'参数不正确',无,无)
我还尝试使用pythoncom.Empty
创建PyOleEmpty对象,并将其作为参数传递,但没有成功
我理解GetNetwork
需要NetworkID
作为参数,但方法GetNetworkId
是在类中定义的
因此,我的问题是如何使用python文件中定义的类,这些类是使用MakePy实用工具创建的,它们不是CoClass
,看起来访问网络对象的方法是使用GetNetworks枚举它们:
networks=obj.GetNetworks(win32com.client.constants.NLM_ENUM_NETWORK_CONNECTED)
for network in networks:
print (network.GetName(), network.GetDescription())
使用网络ID会有问题。它们被定义为原始结构,因此需要使用记录进行传递。Pywin32对IRecordInfo接口的支持仍然有点弱。很好,但我想知道您是如何解决的。
networks=obj.GetNetworks(win32com.client.constants.NLM_ENUM_NETWORK_CONNECTED)
for network in networks:
print (network.GetName(), network.GetDescription())