PyWin32 получает информацию о сети / статистику - PullRequest
1 голос
/ 02 апреля 2012

Я пытаюсь получить Network Statistics для моей Windows 7 системы, используя PyWin32.

Шаги, которые я выполнил:

1) Выполнить COM MakePy utility и затемвыберите network list manager 1.0 type library в библиотеке типов.

2) Вышеупомянутый процесс сгенерировал этот файл python .

Теперь проблема, с которой я столкнулся, заключается в том, что после двух вышеупомянутых шаговкакой должен быть мой next step.Я попробовал пару вещей, таких как:

Я скопировал строку CLSID = IID('{DCB00000-570F-4A9B-8D69-199FDBA5723B}') из сгенерированного выше файла Python и использовал ее как

>>> import win32com
>>> obj = win32com.client.gencache.GetClassForCLSID("{DCB00000-570F-4A9B-8D69-199FDBA5723B}")
>>> obj.GetConnectivity()
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
TypeError: unbound method GetConnectivity() must be called with INetworkListManager instance as first argument (got nothing instead)

Когда я делаю obj.method(), он показывает списокиз всех доступных методов.

enter image description here

Итак, теперь я понятия не имею, что делать или как действовать, и каков общий процесс использования Type library с pywin32.

Вышеуказанная задача является лишь частью процесса обучения тому, как использовать PyWin32, COM MakePy utility.

Возможно ли это сделать с помощью pywin32.?

1 Ответ

1 голос
/ 02 апреля 2012

Вам нужно будет использовать win32com.client.Dispatch для фактического создания объекта. Кроме того, класс, с которого вы начинаете, это CoClass, в данном случае

class NetworkListManager(CoClassBaseClass): # A CoClass

это тот, который вы хотите.

win32com.client.Dispatch('{DCB00C01-570F-4A9B-8D69-199FDBA5723B}')

работает здесь.

Многие из этих классов Dispatch имеют понятное для человека пунктирное имя в качестве псевдонима, хотя этот конкретный не кажется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...