' Aqui la decalracion del API de Windows a utilizar:
Private Declare Function GetLogicalDrives Lib "kernel32" () As Long
' Esta de arriba es la declaracion del API a utilizar, GetLogicalDrives
'es el nombre de la funcion, Kernel32 es el nombre del archivo DLL donde
'esta ubicada en este caso KERNEL:DLL y as Long es lo que devuelve, en
'este caso la funcion no tiene parametros.
Private Const SI_CD = &H8
'Constante a utilizar como mascara para el long devuelto por la funcion
' si deseas una explicacion mas detallada hasmelo saber.
Function HayCD() As Boolean
'Funcion que al utilizar la funcion API devuelve verdaero o falso
'si encontro unidad de CD ono
Dim Numero As Long
Numero = GetLogicalDrives()
If Hex(Numero And SI_CD) = SI_CD Then
HayCD = True
Else
HayCD = False
End If
End Function
Private Sub Form_Load()
If HayCD Then
Label1.Caption = "Hay cd"
Else
Label1.Caption = " no hay cd"
End If
End Sub
=========================================================
No soy experto en esto del API pero si tienes alguna duda solo pregunta
y tratare de Ayudarte
Saludos
--
============================
Victor Aguayo Seminario
Analista de Sistemas
mailto:vaguayo@unired.net.pe
============================
Dice el necio en su corazon, no hay Dios ...(Proverbios)
>De: julian carcia[SMTP:jcarcia@hotmail.com]
>Enviado el: 28 December, 1998 8:33 AM
>Para: vb-esp@ccc.uba.ar
>Asunto: (VB-ESP) conocer la unidad lectora cd-Rom del usuario
>Queridos amigos:
>Nos gustaria mucho conocer si podeis resolver este problema nuestro.
>Queremos que un usuario no se vea obligado a instalar las librerias
>de ficheros de sonido e imagenes de un programa nuestro.
>Queremos que pueda ejecutar el programa desde su cd_rom....Nuestro
>problema es .....que debemos conocer la letra de la unidad de su lector
>cd_rom..
Te remito esto que en su momento lo envió Antonio Periago.
Saludos
Julio Collado
Managua, Nicaragua
Para saber con qué tipo de unidad nos la estamos jugando basta llamar a
la función GetDriveType.
La declaración es:
Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA"
(ByVal nDrive As String) As Long
y los valores que devuelve son (poner en ctes para mayor comodidad):
2 -> Unidad extraíble (FDD, ZIP,...)
3 -> Unidad fija (HDD)
4 -> Unidad remota
5 -> Unidad de CD-ROM <------ su caso!
6 -> Unidad RAM
Para crear una lista de unidades personalizadas (por ejemplo, sólo
CD-ROM's), ponga un ListDrive oculto, un ListBox y compruebe. Una forma
sería:
For i=0 to Drive1.ListCount-1
If GetDriveType(Drive1.List(i)) = 5 Then
List1.AddItem UCase(Drive1.List(i))
End If
Next i
que nos presenta una lista con las unidades de CD-ROM's conectadas al
PC.
Espero que le sirva.
Antonio Periago Miñarro