Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/11/2013, 16:35
Avatar de erbuson
erbuson
 
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: como Diferenciar unidades

Hola:
Con este código modificado para evitar multiples llamadas en mi equipo con Windows XP me los detecta igual que el sistema.

Código vb:
Ver original
  1. Option Explicit
  2.  
  3. 'Función Api getLogicalDrives para recuperar las unidades
  4. Private Declare Function GetLogicalDrives Lib "kernel32" () As Long
  5.  
  6. ' Función Api GetDriveType para obtener el tipo y clase de unidad
  7. Private Declare Function GetDriveType _
  8.     Lib "kernel32" _
  9.     Alias "GetDriveTypeA" ( _
  10.     ByVal nDrive As String) As Long
  11.  
  12. Private Function TipoUnidad(Unidad As String) As String
  13. ' Llamamos a la función pasandole la unidad que queremos obtener la información
  14. Select Case GetDriveType(Trim(Unidad & ":\"))
  15.         Case 2
  16.             ' Unidad de tipo removible, por ejemplo la unidad A:
  17.            TipoUnidad = Unidad & ":\ Unidad removible"
  18.         Case 3
  19.             ' Por ejemplo un disco duro
  20.            TipoUnidad = Unidad & ":\ Unidad Fija"
  21.         Case Is = 4
  22.             ' Una unidad de red
  23.            TipoUnidad = Unidad & ":\ Unidad remota"
  24.         Case Is = 5
  25.             'Unidad de Cd - Dvd
  26.            TipoUnidad = Unidad & ":\ Unidad de Cd-Rom"
  27.         Case Is = 6
  28.             ' Para una unidad de dsico Virtual
  29.            TipoUnidad = Unidad & ":\ Unidad virtual"
  30.         Case Else
  31.             'Cuando es desconocida
  32.            TipoUnidad = Unidad & ":\ Unidad no reconocida"
  33.     End Select
  34. End Function
  35.  
  36.  
  37. Private Sub Command1_Click()
  38. Dim LDs As Long, Cnt As Long, sDrives As String
  39.    
  40.     LDs = GetLogicalDrives
  41.     sDrives = "Drives disponibles: "
  42.     For Cnt = 0 To 25
  43.         If (LDs And 2 ^ Cnt) <> 0 Then
  44.             'sDrives = sDrives + " " + Chr$(65 + Cnt)
  45.            MsgBox TipoUnidad(Chr$(65 + Cnt))
  46.         End If
  47.    
  48.     Next Cnt
  49. 'Mostramos las unidades
  50. 'MsgBox sDrives, vbInformation, "Drives del sistema"
  51.  
  52. End Sub
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...