Paso 3: Hacer el bloqueo de Drive (parte 2)
A continuación voy a mostrarles el menú fueron usted elija unidad de bruja que desea a cerradura (Foto 1).
Set colDrives = objFSO.Drives For Each objDrive in colDrives strDriveList = strDriveList & objDrive.DriveLetter & Space(10) Next strDrives = LCase(Replace(strDriveList," ","",1,-1)) Set colDrives = objFSO.Drives strDriveList = "" For Each objDrive in colDrives strDriveList = strDriveList & objDrive.DriveLetter & ":\" & Space(5) Next
InputMenu() Sub InputMenu strChoice = InputBox("Enter letter of the drive you wish to lock." & _ " Or type ALL to lock all drives." & _ vbcrlf & vbcrlf & "Available drives" & Space(3) & _ ":" & vbCrLf & vbCrLf & strDriveList, cTitleBarMsg)
El primer bit de código genera una lista de todas las unidades disponibles. La siguiente parte es el inputbox que escriba la letra de la unidad que desea bloquear.
Si tratas de escribir cualquier cosa pero una letra de unidad válida y el programa lo rechazará. Aquí está cómo lo hice:
If IsEmpty(strChoice) Then DisplaySplashScreen() ElseIf strChoice = "" Then MsgBox "Do not leave this blank.",16, cTitleBarMsg InputMenu() ElseIf LCase(strChoice) = "all" Then 'Do Nothing ElseIf Len(strChoice) <> 1 Then MsgBox "You must enter the letter ONLY.",16, cTitleBarMsg InputMenu() ElseIf Not InStr(1,strDrives,LCase(strChoice),1) <> 0 Then MsgBox "Invalid choice, please try again.",16, cTitleBarMsg InputMenu() End If
Las dos primeras líneas Verifique si el usuario pulsa el botón Cancelar, y si lo hicieran el programa sale.
Las tres siguientes líneas comprueba si el usuario deja el área de la entrada en blanco.
El resto del código es bastante confuso, pero es básicamente justo asegurándose de que el usuario escribió en una unidad válida.