Rubrik: HTML/Internet/Netzwerk · Netzwerk | VB-Versionen: VB4, VB5, VB6 | 24.01.08 |
WLAN-Signalstärke via WMI ermitteln Hier wird gezeigt, wie sich die WLAN-Signalstärke aller aktiven WLAN-Verbindungen ermitteln und auswerten lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 24.776 |
www.tools4vb.de | System: WinXP, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit nachfolgendem Code lässt sich die WLAN-Signalstärke aller aktiven WLAN-Verbindungen ermitteln und auswerten. Die Ndis80211ReceivedSignalStrength-Eigenschaft liefert hierbei einen negativen Wert zurück, den man wie folgt interpretieren kann. Hierzu bin ich einfach einmal durchs "Haus" gelaufen und habe die einzelnen Rückgabewerte mit der Anzeige des Windows-Status-Dialogs der WLAN-Verbindung abgeglichen:
- bis -55: Signalstärke hervorragend
- bis -67: Signalstärke sehr gut
- bis -71: Signalstärke gut
- bis -79: Signalstärke schlecht
- ab -80: Signalstärke sehr schlecht
- -1000: keine Verbindung
Hier der Code zum Ermitteln der Signalstärke:
Dim sComputer As String Dim sSQL As String Dim oWMI As Object Dim oResult As Object Dim oItem As Object ' eigener Rechner sComputer = "." ' WMI-Objekt erzeugen Set oWMI = GetObject("winmgmts://" & sComputer & "/root\WMI") ' WMI-Abfrage erstellen sSQL = "SELECT * FROM MSNdis_80211_ReceivedSignalStrength " & _ "WHERE Active=true" Set oResult = oWMI.ExecQuery(sSQL) ' alle Einträge durchlaufen On Error Resume Next For Each oItem In oResult With oItem Debug.Print .InstanceName Debug.Print .Ndis80211ReceivedSignalStrength ' Signalstärke im Klartext Select Case .Ndis80211ReceivedSignalStrength Case Is >= -55 Debug.Print "Hervorragend (5 Balken)" Case Is >= -67 Debug.Print "Sehr gut (4 Balken)" Case Is >= -71 Debug.Print "gut (3 Balken)" Case Is >= -79 Debug.Print "schlecht (2 Balken)" Case Is > -1000 Debug.Print "sehr schlecht (1 Balken)" Case Else Debug.Print "keine Verbindung" End Select End With Next On Error GoTo 0