Search code examples
pythonwindowspywin32

PyWin32 get network information/statistics


I am trying to get Network Statistics for my Windows 7 system using PyWin32.

The steps I followed:

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.

Now the problem I am facing is after the above two steps what should be my next step. I tried a couple of things like:

I copied the CLSID = IID('{DCB00000-570F-4A9B-8D69-199FDBA5723B}') line from the above generated python file and used it like

>>> 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)

When I do obj.method() it show a list of all available method.

enter image description here

So, now I have no idea what to do or how to proceed and what is the general process of using Type library with pywin32.

The above task is just a part of learning process on how to use PyWin32,COM MakePy utility.

Is this even achievable using pywin32.?


Solution

  • You'll need to use win32com.client.Dispatch to actually create the object. Also, the class you start with is the CoClass, in this case

    class NetworkListManager(CoClassBaseClass): # A CoClass
    

    is the one you want.

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

    works here.

    Many of these Dispatch classes have a human readable dotted name as an alias, although this particular one doesn't seem to.