An Kommandozeile senden

  • Möchtest du den Befehl an eine aktive Sitzung der Eingabeaufforderung senden?
    Oder reicht es, wenn du ihn in einer neuen Sitzung ausführst?

    Dann kannst du diese kleine Funktion verwenden:

    [autoit]


    Func execShell($sCommand, $fClose = False)
    Local $sModifier
    $sModifier = $fClose ? "/c" : "/k"
    Run("cmd.exe " & $sModifier & " " & $sCommand)
    EndFunc

    [/autoit]


    Das ist jetzt im Browser getippt, sollte die Verwendung aber klar machen (AutoIt-Version > 3.3.9.5 benötigt).

    Gruß

  • den run habe ich mir jetzt angeguckt...aber so ganz werde ich nicht daraus schlau.
    habs jetzt so weit

    Spoiler anzeigen
    [autoit]

    Func _DisableWLAN($s_schnittstellenname = "Drahtlosnetzwerkverbindung") Run(@ComSpec & " /c " & "netsh interface show interface " & $s_schnittstellenname & " disable")EndFunc

    [/autoit]


    aber es klappt nicht :(


    ich will ja nur die WLAN verbindung trennen ;)


    chesstiger, dein skript versteh ich nicht ganz ;) naja ich kenn mich auch noch nicht so mit den kommandobefehlen aus :)

  • So, diese Kommandozeile funktioniert bei mir (Win8.1):

    Code
    netsh interface set interface name=WiFi admin=disabled


    Allerdings benötigt diese Zeile Adminrechte.

    Gruß

  • Wo ist das Problem? Dein autoit code ist korrekt, wenn man mal davon absieht, dass du unvosichtig mit evtl. vorhandenen Leerzeichen im Interfacename umgehst.

    Besser wäre es den Befehl so aufzubauen, dass der Interface Name mit Anführungszeichen umschlossen wird:

    [autoit]


    $s_schnittstellenname = "lan-verbindung 7"
    Run(@ComSpec & ' /k ' & 'netsh interface show interface "' & $s_schnittstellenname & '"')

    [/autoit]

    Chesstiger hat dir zudem die (vermutlich) korrekte netsh Befehlssystax zum deaktivieren des Adpaters gepostet und außerdem den Hinweis, dass du dafür Administrator Privilegien benötigst. Diese bekommst du normalerweise durch den Einsatz von

    [autoit]

    #Requireadmin

    [/autoit]