2010-09-26 12 views
6

Quiero programar un pequeño programa en C# en ventanas que abrirían la lengüeta de la unidad de CD - expulse el CD si hay uno. Me gustaría saber por dónde empiezo y qué bibliotecas .net tratan con este tema. GraciasAbriendo programáticamente la bandeja de CD

Respuesta

11

Abrir y cerrar una unidad de disco programáticamente en C# no es tan difícil gracias a una función API útil llamada mciSendStringA.

primer lugar se necesita para definir la función que se abre la bandeja de disco:

[DllImport("winmm.dll", EntryPoint = "mciSendString")] 
public static extern int mciSendStringA(string lpstrCommand, string lpstrReturnString, 
          int uReturnLength, int hwndCallback); 

Si el código no compila intento de añadir el siguiente C# línea en la parte superior de su código fuente:

using System.Runtime.InteropServices; 

la apertura de la unidad de disco

para abrir la unidad de disco tiene que enviar dos comandos cadenas usando mciSendStringA. El primero asignará un nombre a la unidad deseada. El segundo comando en realidad abrir la bandeja de disco:

mciSendStringA("open " + driveLetter + ": type CDaudio alias drive" + driveLetter, 
       returnString, 0, 0); 
mciSendStringA("set drive" + driveLetter + " door open", returnString, 0, 0); 

El cierre de la unidad de disco

Para cerrar la unidad de disco tiene que enviar dos cadenas de comandos una vez más. El primero será el mismo. El segundo comando ahora cerrará la bandeja del disco:

mciSendStringA("open " + driveLetter + ": type CDaudio alias drive" + driveLetter, 
       returnString, 0, 0); 
mciSendStringA("set drive" + driveLetter + " door closed", returnString, 0, 0); 
+2

Muchas gracias, estaba interesado en aprender más de estas API. ¿Conoces buenos tutoriales? – Matti

+2

google it up .. !! :) – Vaibhav