[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

Getting Wireless Signal Strength / Windows XP

williambattersea

2/13/2008 12:20:00 AM

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/1...)

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
1 Answer

Tim Golden

2/14/2008 6:23:00 PM

0

[Somehow got stuck in my outbox... ]

williambattersea@gmail.com wrote:
> 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/1...)
>
> 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