Netzlaufwerke einbinden

  • Hallo,
    ich habe mir mal ein Skript gebastelt um Netzlaufwerke einzubinden. Ich finde es ganz praktisch um benutze es oft bei der Arbeit um auch die freigegebenen Laufwerke von den Kollegen eben schnell einzubinden um was zu prüfen. So braucht man nicht immer erst in die Konsole und mit Net Use arbeiten. Zwar nichts besonderes, aber vll. dennoch auch für andere hilfreich ;)

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <File.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $Form1 = GUICreate("Netzlaufwerke", 307, 220, 500, 400)

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

    $Buchstabe = GUICtrlCreateGroup("Buchstabe", 16, 16, 81, 138) ;25
    $buchstabe = GUICtrlCreateList("", 32, 32, 49, 109)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlSetData(4, "u:|v:|w:|x:|y:|z:")

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

    $pcname = GUICtrlCreateGroup("YF-Nummer", 104, 16, 97, 57)
    $yf = GUICtrlCreateInput("Rechnername", 112, 40, 81, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $freigab = GUICtrlCreateGroup("Freigabe", 208, 16, 81, 138)
    $freigabe = GUICtrlCreateList("", 224, 32, 49, 109)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlSetData(10, "c$|d$|e$")

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

    $einbinden = GUICtrlCreateButton("Einbinden", 104, 105, 100, 20, $WS_GROUP)
    GUICtrlSetData($einbinden, "Einbinden")
    GUICtrlSetOnEvent($einbinden, "einbinden")

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

    $trennen = GUICtrlCreateButton("Trennen", 104, 130, 100, 20, $WS_GROUP)
    GUICtrlSetData($trennen, "Trennen")
    GUICtrlSetOnEvent($trennen, "Trennen")
    ;_______________________________________Statusmeldungen_______________________________
    $status = GUICtrlCreateGroup("Statusmeldungen", 16, 155, 275, 45)
    ;________________________________________________________________________________________

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

    $checkbox1 = GUICtrlCreateCheckbox("nach Einbinden öffnen", 104, 80, 15, 15)
    GUICtrlSetOnEvent(-1, "checkbox1")
    GUICtrlCreateLabel("Laufwerk öffnen", 120, 80, 80, 15)

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

    GUISetState()
    ;Wenn eingebunden, kann gleich geöffnet werden

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

    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    func einbinden()
    Global $buchstabe1 = GUICtrlRead($buchstabe)
    Global $freigabe1 = GUICtrlRead($freigabe)
    Global $yf1 = guictrlread($yf)
    $eingebunden = DriveMapAdd($buchstabe1, "\\" & $yf1 & "\" & $freigabe1)
    if $eingebunden = 1 then
    GUICtrlCreateLabel("Laufwerk " & $buchstabe1 & "\" & $yf1 & "\" & $freigabe1 & " erfolgr. eingebunden", 32, 175, 230, 15)
    if GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    run("C:\WINNT\explorer.exe /root, " & $buchstabe1)
    EndIf
    EndIf
    EndFunc

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

    func trennen()
    Global $buchstabe1 = GUICtrlRead($buchstabe)
    Global $freigabe1 = GUICtrlRead($freigabe)
    Global $yf1 = guictrlread($yf)
    $getrennt = DriveMapDel ($buchstabe1)
    If $getrennt = 1 then
    GUICtrlCreateLabel("Laufwerk " & $buchstabe1 & "\" & $yf1 & "\" & $freigabe1 & " erfolgr. getrennt", 32, 175, 230, 15)
    EndIf
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Morgen,

    hab mal eine kleine Funktion geschrieben die dir die
    noch nicht belegten Laufwerksbuchstaben zurückgibt
    hab auch mal so ein Script gemacht ist relativ nützlich
    sollte man mal mehr als 5 Freigaben gleichzeitig verbinden

    Gruß Marvin


    >> Funktion gibt ein Array zurück
    >> Aufruf >>

    [autoit]


    $freedrives = GetFreeDriveLetters()
    $letter1 = $freedrives[1]
    $letter1 = $freedrives[2]
    $letter1 = $freedrives[3]
    .....

    [/autoit]

    >>Funktion

    [autoit]

    Func GetFreeDriveLetters()
    Dim $aArray[1]
    For $x = 67 To 90
    If DriveStatus(Chr($x) & ':\') = 'INVALID' Then
    ReDim $aArray[UBound($aArray) + 1]
    $aArray[UBound($aArray) - 1] = Chr($x) & ':'
    EndIf
    Next
    $aArray[0] = UBound($aArray) - 1
    Return($aArray)
    EndFunc

    [/autoit]