gpt4 book ai didi

python - PyWin32 使用 MakePy 实用程序和 win32com 获取网络统计信息

转载 作者:可可西里 更新时间:2023-11-01 10:27:39 24 4
gpt4 key购买 nike

这个问题是我的 previous question 的延续.

我正在尝试获取 Network Statistics对于我的 Windows 7系统使用PyWin32 .

我遵循的步骤:

1) Run COM MakePy utility and than select network list manager 1.0
type library
under type library.

2) Above process generated this 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)

我也试过创建 PyOleEmpty object通过使用 pythoncom.Empty并将其作为参数传递但没有运气。

我明白了GetNetwork需要 NetworkID作为参数,但方法 GetNetworkIdINetwork 中定义类。

所以我的问题是如何使用在使用 MakePy utility 创建的 python 文件中定义的类这不是CoClass .

最佳答案

看起来获取网络对象的方法是使用 GetNetworks 枚举它们:

networks=obj.GetNetworks(win32com.client.constants.NLM_ENUM_NETWORK_CONNECTED)
for network in networks:
print (network.GetName(), network.GetDescription())

使用网络 ID 会有问题。它们被定义为原始结构,因此需要使用 Records 传递它们。 Pywin32对IRecordInfo接口(interface)的支持还是有些薄弱。

关于python - PyWin32 使用 MakePy 实用程序和 win32com 获取网络统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9982235/

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