Visual Basic - Comprobar q hay un disco insertado

Life is soft - evento anual de software empresarial
 
Vista:

Comprobar q hay un disco insertado

Publicado por McRight2k (21 intervenciones) el 07/04/2003 12:18:19
Hola!!
Deseo saber si existe o no un disco en la disquetera.

Necesito importar y exportar datos mediante código y al ejecutar estas funciones, debo comprobar antes si hay o no un disco insertado.

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Solución

Publicado por McRight2k (21 intervenciones) el 07/04/2003 13:51:45
Weno q ya he encontrado una solución... Mediante una API.
En realidad es la que obtiene el espacio libre en una unidad, pero que devuelve un 0 si no hay ningún disco en esa unidad.
Os la pongo, por si a alguien le interesa.

Declaración API:
Public Declare Function GetDiskFreeSpace Lib "kernel32.dll" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long

Funcion:

Function ComprobarUnidad(LetraUnidad As String) As Long
Dim SectoresPorCluster As Long
Dim BytesPorSector As Long
Dim ClustersLibres As Long
Dim NumeroDeClusters As Long
Dim ValorRetorno As Long
ValorRetorno = GetDiskFreeSpace(LetraUnidad & ":\", SectoresPorCluster, BytesPorSector, ClustersLibres, NumeroDeClusters)
If ValorRetorno <> 0 Then
ComprobarUnidad = BytesPorSector * SectoresPorCluster * ClustersLibres
Else
ComprobarUnidad = 0
End If
End Function

Para probarlo podeis crearos un botón y en el evento del click, pegais este código:

Private Sub Command1_Click()
Dim ret As Long
ret = ComprobarUnidad("A")
If ret = 0 Then MsgBox "No hay disco" Else MsgBox "El disco tiene " & ret & " KBytes libres"
End Sub

Espero q os sirva, como a mi.

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar