Abrir el CD-ROM con acceso directo
Soy Cote, hace un tiempo te pregunté como se podía abrir el CD-ROM con un acceso directo y no lo supiste pero que si encontraba algo te lo mandara, ya lo encontré sólo que no lo sé utilizar, he metido las instrucciones en Visual basic pero nada, si tú lo sabes, por favor mándamelo.
Abrir y cerrar en el escritorio el CD-ROM
Los lectores de CD-ROM actuales cuentan con bandejas motorizadas que, aparte de pulsación del botón físico que hay en la propia uni-responder a la dad, pueden ser controladas desde cualquier programa. Con una simple función] llamada mciSendStringO, podemos abrir y cerrar esa bandeja. También podríamos usarla para saber si el disco introducido es de datos o de música y, en este último caso, iniciar la reproducción.
Para poder usar esta función lo primero que hay que hacer es declararla en el módulo de código donde la necesitemos, o bien incluirla en nuestra librería de tipos tal y como se explic6 en el primero de los trucos. La definición de mciSendStringO es ésta:
Private Declare Function -
mciSendString Lib "winmm.dll" -
Alias "mciSendStringA" -
(ByVal lpstrCommand As String , -
ByVal lpstrRetumString As String ,-
ByVaI uReturnLength As Long ,-
ByVal hwndCallback As Long) As Long
El primer parámetro de esta función es una cadena con la orden a ejecutar, mientras que los otros tres, para el caso que nos ocupa, podemos obviarIos ya que no esperamos valores de retorno ni resultados.
Si quisiéramos abrir la bandeja de la unidad de CD-ROM desde un programa propio., bastaría con introducir una sentencia como la siguiente:
mciSendString "Set. Cdaudio Door Open",_ vbNullString, o, o
De forma análoga, para cerrar la bandeja usaríamos la orden Set cdaudio Door Closed. En ambos casos estaríamos actuando sobre la única unidad de CD-ROM del sistema o, en caso de existir varias, sobre la primera unidad disponible. Para trabajar con una unidad secundaria, o cualquier otra que pudiera haber en el sistema, primero tendríamos que abrirla. Suponga que tiene dos unidades de CD-ROM, una con la letra H: y otra con la I:. Podría actuar sobre la segunda de esta forma:
Open I: type cdaudio Alias MiCd
Set. MiCd Door Open
Close MiCd
En estas órdenes se abre una unidad específica, indicando su letra, y asignándole un alias que, posteriormente, usamos para controlar la bandeja y cerrar la unidad. Conociendo este truco, podríamos codificar una función genérica que nos permitiese actuar sobre cualquier unidad.. En la figura puede ver la interfaz de un sencillo programa que facilita la apertura y cierre de la bandeja de cualquier unidad de CD-ROM. El código asociado a esta intertaz es el siguiente:
"Método para actuar sobre el CD- ROM
Private Sub OperaUnidad(_
ByVal Accion As String)
Dim Unidad As String
'Si se ha introducido una letra
If Text1 <> "" Then
'tenemos que añadir "type"
Unidad = Text1 + " type"
End If
'Abrimos la unidad
mciSendString "open" + Unidad + _
" cdauclio alias MiCd
vbNullString, o, o
'Ejecutamos la acción solicitada
mciSendString "Set MiCd Door" + _
Accion, vbNullString, o, o
' y la cerramos
mciSendString "close MiCd", _
vbNullString, o, o
End Sub
' Para abrir el CD-ROM
Private Sub Command1_ClickO
OperaUnidad "open" ..enviamos la orden "open "
End Sub
' Para cerrar el CD-ROM
Private Sub Command1_Click O
OperaUnidad "closed" ' enviamos la orden "clo-
Sed"
End Sub
Abrir y cerrar en el escritorio el CD-ROM
Los lectores de CD-ROM actuales cuentan con bandejas motorizadas que, aparte de pulsación del botón físico que hay en la propia uni-responder a la dad, pueden ser controladas desde cualquier programa. Con una simple función] llamada mciSendStringO, podemos abrir y cerrar esa bandeja. También podríamos usarla para saber si el disco introducido es de datos o de música y, en este último caso, iniciar la reproducción.
Para poder usar esta función lo primero que hay que hacer es declararla en el módulo de código donde la necesitemos, o bien incluirla en nuestra librería de tipos tal y como se explic6 en el primero de los trucos. La definición de mciSendStringO es ésta:
Private Declare Function -
mciSendString Lib "winmm.dll" -
Alias "mciSendStringA" -
(ByVal lpstrCommand As String , -
ByVal lpstrRetumString As String ,-
ByVaI uReturnLength As Long ,-
ByVal hwndCallback As Long) As Long
El primer parámetro de esta función es una cadena con la orden a ejecutar, mientras que los otros tres, para el caso que nos ocupa, podemos obviarIos ya que no esperamos valores de retorno ni resultados.
Si quisiéramos abrir la bandeja de la unidad de CD-ROM desde un programa propio., bastaría con introducir una sentencia como la siguiente:
mciSendString "Set. Cdaudio Door Open",_ vbNullString, o, o
De forma análoga, para cerrar la bandeja usaríamos la orden Set cdaudio Door Closed. En ambos casos estaríamos actuando sobre la única unidad de CD-ROM del sistema o, en caso de existir varias, sobre la primera unidad disponible. Para trabajar con una unidad secundaria, o cualquier otra que pudiera haber en el sistema, primero tendríamos que abrirla. Suponga que tiene dos unidades de CD-ROM, una con la letra H: y otra con la I:. Podría actuar sobre la segunda de esta forma:
Open I: type cdaudio Alias MiCd
Set. MiCd Door Open
Close MiCd
En estas órdenes se abre una unidad específica, indicando su letra, y asignándole un alias que, posteriormente, usamos para controlar la bandeja y cerrar la unidad. Conociendo este truco, podríamos codificar una función genérica que nos permitiese actuar sobre cualquier unidad.. En la figura puede ver la interfaz de un sencillo programa que facilita la apertura y cierre de la bandeja de cualquier unidad de CD-ROM. El código asociado a esta intertaz es el siguiente:
"Método para actuar sobre el CD- ROM
Private Sub OperaUnidad(_
ByVal Accion As String)
Dim Unidad As String
'Si se ha introducido una letra
If Text1 <> "" Then
'tenemos que añadir "type"
Unidad = Text1 + " type"
End If
'Abrimos la unidad
mciSendString "open" + Unidad + _
" cdauclio alias MiCd
vbNullString, o, o
'Ejecutamos la acción solicitada
mciSendString "Set MiCd Door" + _
Accion, vbNullString, o, o
' y la cerramos
mciSendString "close MiCd", _
vbNullString, o, o
End Sub
' Para abrir el CD-ROM
Private Sub Command1_ClickO
OperaUnidad "open" ..enviamos la orden "open "
End Sub
' Para cerrar el CD-ROM
Private Sub Command1_Click O
OperaUnidad "closed" ' enviamos la orden "clo-
Sed"
End Sub
1 Respuesta
Respuesta de MANUEL LOPEZ ALVAREZ
1