Getting Wireless Signal Strength / Windows XP

W

williambattersea

Hello,

I'm looking for a way to get wireless signal strength on Windows XP
with Python. I see there's a library for Linux, but I can't find
anything for windows. However, I see that using WMI I can access it in
theory at least, using a query like "select
Ndis80211ReceivedSignalStrength from
MSNdis_80211_ReceivedSignalStrength where active=true"

(I got this from: http://www.dotnet247.com/247reference/msgs/36/181397.aspx)

I just began playing with the WMI library, but I can't get a hold of
the signal strength.

As far as I can tell, I should be able to get a handle on it with:

import wmi
c = wmi.WMI()

wql = "select Ndis80211ReceivedSignalStrength from
MSNdis_80211_ReceivedSignalStrength where active=true"

o = c.query(wql)

But I get an error.
Traceback (most recent call last):
File "<pyshell#45>", line 1, in <module>
c.query("select Ndis80211ReceivedSignalStrength from
MSNdis_80211_ReceivedSignalStrength where active=true")
File "C:\Python25\Lib\site-packages\wmi.py", line 889, in query
return [ _wmi_object (obj, instance_of, fields) for obj in
self._raw_query(wql) ]
File "C:\Python25\lib\site-packages\win32com\client\util.py", line
83, in next
return _get_good_object_(self._iter_.next())
com_error: (-2147217392, 'OLE error 0x80041010', None, None)

Is this not available to me? Any ideas? Am I going about this in the
wrong way?

Thanks
 
T

Tim Golden

[Somehow got stuck in my outbox... ]

Hello,

I'm looking for a way to get wireless signal strength on Windows XP
with Python. I see there's a library for Linux, but I can't find
anything for windows. However, I see that using WMI I can access it in
theory at least, using a query like "select
Ndis80211ReceivedSignalStrength from
MSNdis_80211_ReceivedSignalStrength where active=true"

(I got this from: http://www.dotnet247.com/247reference/msgs/36/181397.aspx)

I just began playing with the WMI library, but I can't get a hold of
the signal strength.

As far as I can tell, I should be able to get a handle on it with:

import wmi
c = wmi.WMI()

wql = "select Ndis80211ReceivedSignalStrength from
MSNdis_80211_ReceivedSignalStrength where active=true"

o = c.query(wql)

But I get an error.
Traceback (most recent call last):
File "<pyshell#45>", line 1, in <module>
c.query("select Ndis80211ReceivedSignalStrength from
MSNdis_80211_ReceivedSignalStrength where active=true")
File "C:\Python25\Lib\site-packages\wmi.py", line 889, in query
return [ _wmi_object (obj, instance_of, fields) for obj in
self._raw_query(wql) ]
File "C:\Python25\lib\site-packages\win32com\client\util.py", line
83, in next
return _get_good_object_(self._iter_.next())
com_error: (-2147217392, 'OLE error 0x80041010', None, None)

Is this not available to me? Any ideas? Am I going about this in the
wrong way?

Thanks

I don't have a machine to test this on at present, but one thing to note
is that the article specifies the WMI namespace (the default is CIMv2),
so at the very least you'd need to do something like this:

import wmi
c = wmi.WMI (namespace="WMI")

Once you've got the namespace, you should be able to use the standard
syntax to query the -- frankly, unwieldy -- WMI class:

for result in c.MSNdis_80211_ReceivedSignalStrength (active=True):
print result.Ndis80211ReceivedSignalStrength

The machine I'm on is Win2k and non-wireless so I don't have the class
available to check.

Hope that helped

TJG
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,816
Latest member
SapanaCarpetStudio

Latest Threads

Top