Fenster öffnen - "Verfügbare Drahtlose Netzwerke anzeigen"

  • Hi BugFix,
    Danke für die schnelle Antwort!
    Das ist doch schon mal ein erster Schritt! :)
    Hat jemand noch eine Idee?
    Mfg Tim

  • So wie BugFix schon sagte so kannst du sie dir nicht ausgeben lassen aber Ausführen CMD {enter} ipconfig /all rein {enter} und schon hast du deine Netzwerkverbindungen!
    Und diesen kannst du mit Autoit automatisieren oder du schreibst eine Batch muss blos pause hinten ran ansonsten fenster wieder zu!
    LG kleiner

  • Z.B kannst du dir den text ausgeben lassen suchen im text nach Dratlose Netzwerkverbindungen und mit den hilfe datein von autoit realisieren!


    1. _GUICtrlListView_UnRegisterSortCallBack.au3
    2. _GUICtrlListView_SetGroupInfo.au3

    Ist jetzt nur mal eine Idee kam ich gerade drauf wo ich dein post sah!

    LG Kleiner

  • Hi, hilft das weiter?

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)

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

    Local $msg, $Input1, $Input2, $Beenden
    local $lan_IP="nicht feststellbar"
    local $wlan_IP="nicht feststellbar"

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

    dim $a[1][1]

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

    #Region ### START Koda GUI section ### Form=
    GUICreate("Form1", 263, 187, 390, 114)

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

    $a = _GetAllNetAdapterInfo() ;alle Adapterinfos aus der Registry auslesen und in ein Array schreiben
    if not isarray($a) Then ; wenn es keine Netzwerkadapter gibt, programm beenden
    msgbox(1,"Fehler", "Es können keine Netzwerkadapter festgestellt werden!"&@crlf&"Programm wird beendet!")
    Exit
    endif

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

    _ArrayDisplay($a) ;auskommentieren wenn nicht benötigt!

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

    For $i =1 to $a[0][0] ;alle adapter durchsuchen
    if $a[$i][1]="LAN-Verbindung" then $lan_IP=$a[$i][5] ;wenn in der 2. Spalte der String "LAN-Verbindung" vorkommt, dann die 5. Spalte merken
    if $a[$i][1]="Drahtlose Netzwerkverbindung" then $wlan_IP=$a[$i][5] ;wenn in der 2. Spalte der String "Drahtlose Netzwerkverbindung" vorkommt, dann die 5. Spalte merken
    next

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

    $Input1 = GUICtrlCreateInput($lan_IP, 112, 28, 105, 21) ;hier die gedfundene IP eintragen
    $Input2 = GUICtrlCreateInput($wlan_IP, 112, 69, 105, 21) ;hier die gedfundene IP eintragen
    GUICtrlCreateLabel("LAN IP Adresse", 16, 32, 79, 17)
    GUICtrlCreateLabel("WLAN IP Adresse", 16, 72, 90, 17)
    $Beenden = GUICtrlCreateButton("Beenden", 40, 120, 177, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $Beenden
    ExitLoop
    EndSelect

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

    WEnd

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

    ;######################################################################################################
    ;# Function Name: _GetAllNetAdapterInfo()
    ;# Description:: Auslesen aller vorhandenen Netzwerkadapter und deren Konfiguration
    ;# Parameter(s): keine
    ;# Requirement(s): keine
    ;# Return Value(s): Erfolg Array[0][0] Anzahl der Adapter
    ;# Array[n][0] Adapter Name (wie in Systemsteuerung ==> Netzwerkverbindungen)
    ;# Array[n][1] Adapter Beschreibung
    ;# Array[n][2] IP-Adresse
    ;# Array[n][3] SubNetMask
    ;# Array[n][4] DHCP-Enabled (0/1)
    ;# Array[n][5] DHCP IP-Adresse
    ;# Array[n][6] DHCP SubNetMask
    ;# Array[n][7] DHCP Default Gateway
    ;# Array[n][8] DHCP Server
    ;# Fehler Array[0][0] Leerstring (kein Adapter vorhanden)
    ;# Author(s): Bitboy, nach einer Idee von BugFix ([email='bugfix@autoit.de'][/email])
    ;######################################################################################################

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

    Func _GetAllNetAdapterInfo()
    Local $infoarr[1][9], $keyarr[1], $i = 0, $x = 0, $counter = 0, $tmp, $tmp2, $short

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

    ;Registrierte Adapter zählen
    While 1
    $i = $i + 1
    $tmp = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services", $i)
    If @error <> 0 Then ExitLoop

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

    ;Adapter sind in den einzigen Schlüsseln die mit "{" beginnen
    If StringInStr($tmp, "{") Then
    $short = 1 ;Merker zum Verkürzen der Schleife da Keys alphabetisch sortiert
    $counter = $counter + 1
    ReDim $keyarr[$counter + 1]
    $keyarr[$counter] = $tmp ;Speichern der Adapterschlüssel
    $keyarr[0] = $counter
    Else
    If $short = 1 Then ExitLoop
    EndIf
    WEnd

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

    ;Funktion verlassen wenn kein Adapter gefunden wurde
    If $counter = 0 Then
    $infoarr[0][0] = 0
    Return $infoarr
    EndIf

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

    ;Rückgabearray an Adapterzahl anpassen
    ReDim $infoarr[$counter + 1][9]
    $infoarr[0][0] = $counter

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

    ; TCP-Informationen auslesen
    For $i = 1 To $counter
    $infoarr[$i][2] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'IPAddress')
    $infoarr[$i][3] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'SubnetMask')
    $infoarr[$i][4] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'EnableDHCP')
    $infoarr[$i][5] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'DhcpIPAddress')
    $infoarr[$i][6] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'DhcpSubnetMask')
    $infoarr[$i][7] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'DhcpDefaultGateway')
    $infoarr[$i][8] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'DhcpServer')
    Next

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

    ;Adapternamen auslesen
    $i = 1
    $short = 0
    While 1
    $tmp = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}", $i)
    If @error <> 0 Then ExitLoop

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

    $tmp2 = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & $tmp, "NetCfgInstanceId")
    For $x = 1 To $counter

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

    ;Zugeordnete Verbindung auslesen
    $infoarr[$x][1] = RegRead('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\' & $keyarr[$x] & '\Connection', 'Name')
    If $tmp2 = $keyarr[$x] Then
    $infoarr[$x][0] = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & $tmp, "DriverDesc")
    $short = $short + 1 ;gefundene Namen zählen
    EndIf
    Next

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

    If $short = $counter Then ExitLoop ;Alle Adapternamen gefunden

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

    $i = $i + 1
    WEnd

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

    Return $infoarr
    EndFunc ;==>_GetAllNetAdapterInfo

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

    Func GetIP($AdapterName)
    Local $objWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2'), $Output = 0
    Local $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    Local $colItems2 = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration', 'WQL', 0x30)
    If IsObj($colItems2) Then
    For $objItem2 In $colItems2
    If $objItem.Caption = $objItem2.Caption Then
    If $objItem.NetConnectionID = $AdapterName Then
    $Output = $objItem2.IPAddress(0)
    EndIf
    EndIf
    Next
    EndIf
    Next
    EndIf
    Return $Output
    EndFunc ;==>GetIP

    [/autoit]
  • Hi Andy,
    Danke für deine Mühe!
    Dein Skript funktioniert super. Danke! :)
    Falls jemand irgendwann auf die Lösung kommt, wäre es super sie zu posten! Nur so nur interessehalber.