DriveLetter Auswahl

  • Hallo ,

    brauche Hilfe für mein TrueCrypt Script .

    Wie erstelle ich eine Auswahlliste , in der ich aus den noch zur verfügung stehenden

    Laufwerksbuchstaben einen auswählen kann ?

    Es sollen nur die noch nicht vergebenen Laufwerksbuchstaben in einer Liste angezeigt werden .

    gruß CrazyEde

    • Offizieller Beitrag

    Moin,
    probiers mal Hiermit :

    [autoit]

    #include <Array.au3>
    Global $var, $text, $Laufwer[1]
    $var = DriveGetDrive("all")
    For $i = 97 To 122
    $text = Chr($i) & ":"
    If _ArraySearch($var, $text) = -1 Then _ArrayAdd($Laufwer, $text)
    Next
    $Laufwer[0] = UBound($Laufwer) - 1
    MsgBox(0, "LaufwerkbuchstabenInfo", "Es sind " & $Laufwer[0] & " Laufwerksbuchstaben frei. 1 Buchstabe ist :" & $Laufwer[1])

    [/autoit]

    MfG Raupi

    • Offizieller Beitrag

    Oder wenn Du das für ein Combo-Feld haben willst:

    Spoiler anzeigen
    [autoit]


    #include<ComboConstants.au3>
    #include<GUIConstantsEx.au3>

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

    $sDrivesFree = _DriveLetterFree()
    $sFirstDrive = StringLeft($sDrivesFree, 3)

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

    GUICreate('Test')

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

    GUICtrlCreateCombo('', 32, 32, 64, 25, $CBS_DROPDOWNLIST)
    GUICtrlSetFont(-1, 16, 600, 0, 'Arial')
    GUICtrlSetData(-1, $sDrivesFree, $sFirstDrive)

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

    GUISetState()

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func _DriveLetterFree()
    Local $i, $v, $j, $letters, $aAllDrives = DriveGetDrive('ALL')
    For $i = 67 To 90 ; Buchstaben 'C' bis 'Z' durchgehen
    $v = True
    For $j = 1 To $aAllDrives[0] ; Alle belegten Buchstaben
    If Chr($i) & ':' = $aAllDrives[$j] Then ; Buchstabe ist nicht frei
    $v = False ; dann kennzeichnen
    ExitLoop ; und For $j - Schleife verlassen
    EndIf
    Next
    If $v Then $letters &= Chr($i) & ':\|' ; War der Buchstabe noch frei, dann in die Liste übernehmen
    Next
    Return StringTrimRight($letters, 1)
    EndFunc

    [/autoit]
  • Moin Moin ,

    Oscar genau das habe ich gesucht .

    Super und dann auch noch so schnell .

    Vielen Dank .

    gruß CrazyEde