Herausfinden in welchem WLAN man sich befindet

  • Hallo :)

    Ich wollte mal nachfragen ob es irgendeine möglichkeit gibt herauszufinden in welchem WLAN man sich unter windows 7 man sich befindet?

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

    Einmal editiert, zuletzt von blackdeath911 (21. Januar 2011 um 21:54)

  • Hmn ich habe zwar jetzt den Schlüssel auch gefunden nur weiß ich nicht wie ich prüfen soll ob das netzwerk aktiv ist?

    Gibt es nicht eine elegantere variante?

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • Da es sich um Win7 handelt kann man eigentlich davon ausgehen dass netsh vorhanden ist.
    Ich bin mir bei folgendem Beispiel nur noch nicht sicher ob alle Profile angezeigt werden oder nur das aktive (hab hier momentan nur eines).
    Wenn es nicht so ist müsste man das RegExp-Pattern verfeinern.
    Aber ich denke als Gedankenanstoss reicht es vielleicht auch erstmal:

    SSID per Netsh
    [autoit]

    MsgBox(0, "SSID", GetActiveSSID())

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func GetActiveSSID()
    Local Const $iPID = Run('netsh wla sho int', "", @SW_HIDE, 2)
    Local $sLine, $aRegExp

    [/autoit] [autoit][/autoit] [autoit]

    While True
    $sLine = StdoutRead($iPID)
    If @error Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    If $sLine Then
    $aRegExp = StringRegExp($sLine, "SSID\s+:\s(\w{1,32})", 3)
    If Not @error Then
    ProcessClose($iPID)
    Return $aRegExp[0]
    EndIf
    EndIf
    WEnd
    EndFunc

    [/autoit]
  • Das Pattern ist noch nicht vollkommen korrekt.
    Leerzeichen und z.B. Punkte oder sowas, welche auch in einer SSID vorkommen dürfen werden damit nicht erkannt.
    Mindestens (wahrscheinlich sollte man es sowieso noch verfeinern) müsste es dann eher so sein:

    Spoiler anzeigen
    [autoit]

    MsgBox(0, "SSID", GetActiveSSID())

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func GetActiveSSID()
    Local Const $iPID = Run('netsh wla sho int', "", @SW_HIDE, 2)
    Local $sLine, $aRegExp

    [/autoit] [autoit][/autoit] [autoit]

    While True
    $sLine = StdoutRead($iPID)
    If @error Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    If $sLine Then
    $aRegExp = StringRegExp($sLine, "SSID\s+:\s(.{1,32})", 3)
    If Not @error Then
    ProcessClose($iPID)
    Return $aRegExp[0]
    EndIf
    EndIf
    WEnd
    EndFunc

    [/autoit]