- Offizieller Beitrag
Diese Funktion gibt alle freien Laufwerksbuchstaben als String oder als Array zurück (siehe Beispiele).
Spoiler anzeigen
#include<Array.au3>
#include<ComboConstants.au3>
#include<GUIConstantsEx.au3>
; Beispiel 1 Anfang
$sFreeDriveLetter = _FreeDriveLetter(0) ; Parameter = 0
$sFirstDrive = StringLeft($sFreeDriveLetter, 2)
$sLastDrive = StringRight($sFreeDriveLetter, 2)
GUICreate('Ausgabe als Combobox', 250, 70)
GUICtrlCreateCombo('', 10, 20, 58, 25, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_DROPDOWNLIST))
GUICtrlSetFont(-1, 16, 400, 0, 'Arial')
GUICtrlSetData(-1, $sFreeDriveLetter, $sLastDrive)
GUISetState()
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
; Beispiel 1 Ende
; Beispiel 2 Anfang
$aFreeDriveLetter = _FreeDriveLetter(1) ; Parameter = 1
_ArrayDisplay($aFreeDriveLetter, '[0] = Anzahl der Elemente')
; Beispiel 2 Ende
; Beispiel 3 Anfang
$aFreeDriveLetter = _FreeDriveLetter(2) ; Parameter = 2
_ArrayDisplay($aFreeDriveLetter, 'Nullbasiertes Array')
; Beispiel 3 Ende
;===============================================================================
; Function Name..: _FreeDriveLetter([$iMode])
; Description....: Gibt alle freien Laufwerksbuchstaben zurück (String oder Array)
; Parameter......: $iMode = 0 Rückgabe als String (gut als Auswahl für Comboboxen)
; 1 Rückgabe als Array (Array[0] = Anzahl der Array-Elemente)
; 2 Rückgabe als Array (Nullbasiert)
; Return Value(s): String bzw. Array mit den freien Laufwerksbuchstaben
; Author.........: Oscar (http://www.autoit.de)
;===============================================================================
Func _FreeDriveLetter($iMode = 0)
If $iMode < 0 Or $iMode > 2 Or Not IsNumber($iMode) Then $iMode = 0
Local $sFreeDriveLetter = ''
For $i = 67 To 90
If Not DriveGetType(Chr($i) & ':') Then $sFreeDriveLetter &= Chr($i) & ':|'
Next
If $iMode Then
Return StringSplit(StringTrimRight($sFreeDriveLetter, 1), '|', $iMode)
Else
Return StringTrimRight($sFreeDriveLetter, 1)
EndIf
EndFunc ;==>_FreeDriveLetter