Wie schaltet man die netzwerk-karte ein oder aus?

  • Ich schalte meine WLAN/LAN Verbindung mit folgendem Script hin und her. Die Idee habe ich aber auch von jemandem übernommen. Hier nochmals meinen Dank dafür....

    Spoiler anzeigen
    [autoit]

    $nameLanConnection = "LAN-Verbindung"; Name des Adapters
    $oLanConnection = ""

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

    if @OSType<>"WIN32_NT" then
    Msgbox(0,"","Dieses Script benötigt Windows 2000 oder höher")
    exit
    endif

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

    Select
    Case StringInStr("0409,0809,0c09,1009,1409,1809,1c09,2009,2409,2809,2c09,3009,3409", @OSLang) ; English (United States)
    $strEnableVerb = "En&able"
    $strDisableVerb = "Disa&ble"
    if @OSVersion="WIN_2000" then
    $strFolderName = "Network and Dial-up Connections"
    else
    $strFolderName = "Network Connections" ; Windows XP
    endif

    Case StringInStr("0407", @OSLang); Deutsch
    $strEnableVerb = "&Aktivieren"
    $strDisableVerb = "&Deaktivieren"
    if @OSVersion="WIN_2000" then
    $strFolderName = "Netzwerk- und DFÜ-Verbindungen"
    else
    $strFolderName = "Netzwerkverbindungen" ; Windows XP
    endif

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

    EndSelect

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

    ;Virtueller Ordner (Wert 3) enthält die Systemsteuerung
    Const $ssfCONTROLS = 3

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

    $ShellApp = ObjCreate("Shell.Application")
    $oControlPanel = $shellApp.Namespace($ssfCONTROLS)

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

    ; Finde 'Netzververbindungen' unter den Systemsteuerungen
    $oNetConnections=""
    For $FolderItem in $oControlPanel.Items
    If $FolderItem.Name = $strFolderName then
    $oNetConnections = $FolderItem.GetFolder
    Exitloop
    Endif
    Next
    If not IsObj($oNetConnections) Then
    Msgbox(0,"Fehler","Die Steuerung " & $strFolderName & " kann nicht gefunden werden."
    Exit
    EndIf

    ; Finde die gesuchte LAN-Verbindung
    For $FolderItem In $oNetConnections.Items
    If StringLower($FolderItem.Name) = StringLower($nameLanConnection) Then
    $oLanConnection = $FolderItem
    Exitloop
    EndIf
    Next
    If not IsObj($oLanConnection) Then
    Msgbox(0,"Fehler","Die Verbindung " & $nameLanConnection & " kann nicht gefunden werden.")
    Exit
    EndIf

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

    $bEnable = true
    $oEnableVerb = ""
    $oDisableVerb = ""

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

    For $Verb In $oLanConnection.Verbs
    If $Verb.Name = $strEnableVerb Then
    $oEnableVerb = $Verb
    $bEnable = false
    EndIf
    If $Verb.Name = $strDisableVerb Then
    $oDisableVerb = $Verb
    EndIf
    Next

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

    If $bEnable then
    ; deaktivieren
    $oDisableVerb.DoIt
    else
    ; aktivieren
    $oEnableVerb.DoIt
    TrayTip("",$nameLanConnection & " wurde aktiviert !",3)
    Sleep(3000)
    Endif

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

    $nameLanConnection = "Drahtlose Netzwerkverbindung"; Name des Adapters
    $oLanConnection = ""

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

    ; Finde die gesuchte LAN-Verbindung
    For $FolderItem In $oNetConnections.Items
    If StringLower($FolderItem.Name) = StringLower($nameLanConnection) Then
    $oLanConnection = $FolderItem
    Exitloop
    EndIf
    Next
    If not IsObj($oLanConnection) Then
    Msgbox(0,"Fehler","Die Verbindung " & $nameLanConnection & " kann nicht gefunden werden.")
    Exit
    EndIf

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

    $bEnable = true
    $oEnableVerb = ""
    $oDisableVerb = ""

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

    For $Verb In $oLanConnection.Verbs
    If $Verb.Name = $strEnableVerb Then
    $oEnableVerb = $Verb
    $bEnable = false
    EndIf
    If $Verb.Name = $strDisableVerb Then
    $oDisableVerb = $Verb
    EndIf
    Next

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

    If $bEnable then
    ; deaktivieren
    $oDisableVerb.DoIt
    else
    ; aktivieren
    $oEnableVerb.DoIt
    TrayTip("",$nameLanConnection & " wurde aktiviert !",3)
    Endif

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

    Sleep(3000)

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • hi das geht aber nur mit xp und win2000! :)
    was muss man verändern für win 7?!
    Danke

    Einmal editiert, zuletzt von tire (2. Mai 2010 um 12:28)

  • Meinen Recherchen nach, soll das Prinzip auch unter Vista und Win7 funktionieren.
    ggf. Sind die Bezeichnungen anders.

    Füge doch mal in die Zeile 41 folgendes ein und lass Dir die Namen ausgeben:

    MsgBox(0,"",$FolderItem.Name)

    Ansonsten muss Du mal beschreiben, was geht und was nicht.
    Ich habe keine Windows7 zum testen.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Meinen Recherchen nach, soll das Prinzip auch unter Vista und Win7 funktionieren.
    ggf. Sind die Bezeichnungen anders.

    Füge doch mal in die Zeile 41 folgendes ein und lass Dir die Namen ausgeben:

    MsgBox(0,"",$FolderItem.Name)

    Ansonsten muss Du mal beschreiben, was geht und was nicht.
    Ich habe keine Windows7 zum testen.

    In windows 7 bekomt man die fehler meldung: error: Error parsing
    funktion call
    wen ich MsgBox(0,"",$FolderItem.Name) in zeile 41 einfüge komt fehler meldung: error :Variable used without being declared

    danke :)

  • Du müsstest schon etwas mehr Angaben machen: In welcher Zeile kommt es unter Win7 zum "Error parsing funktion call" ?

    Aber für mich (ohne Win7) ist es schwer, den Fehler zu lokalisieren. Viieleich kann jemand anders weiterhelfen.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • ist niemand hier wo das bei win 7 zum laufen kriegt?
    ich kriege das einfach nicht hin hab schon alles probiert!
    das funktioniert auch nicht:

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #include <array.au3>
    #RequireAdmin
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", "1")

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

    _ToggleNetworkInterface('Lokale netzwerkverbindung', 0)

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

    ; $iFlag = 0 Disable network interface
    ; $iFlag = 1 Enable network interface

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

    Func _ToggleNetworkInterface($strNetwork, $iFlag = 0)
    Local $wbemFlagReturnImmediately = 0x10
    Local $wbemFlagForwardOnly = 0x20
    Local $strComputer = "localhost"

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

    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

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

    If IsObj($colItems) Then
    For $objItem In $colItems
    If $objItem.NetConnectionID = $strNetwork Then
    If $iFlag = 0 And $objItem.NetEnabled = True Then
    $objItem.Disable
    ElseIf $iFlag = 1 And $objItem.NetEnabled = False Then
    $objItem.Enable
    EndIf
    ExitLoop
    EndIf
    Next
    Else
    MsgBox(0, "WMI Output", "No WMI Objects Found for class: " & "Win32_NetworkAdapter")
    EndIf
    EndFunc ;==>_ToggleNetworkInterface

    [/autoit]

    Dank an alle die mir helfen!