Exclamación Como abrir la puerta del cd rom desde C# y VB.NET
-
domingo, 08 de febrero de 2009 20:48
Dando solución a una de las inquietudes más comunes de las personas en los foros he creado este post para mostrarles la funcionalidad de la clase ExpulsarCDRom para explicarles como se hizo.
CÓMO UTILIZAR ESTA CLASE?
Para utilizarla, las explicaciones sobran, este es un código de ejemplo que muestra como abrir todas las unidades de CDRom en el PC ,he utilizado linq y DriveInfo para obtener el listado de unidades de CDRom disponibles y seguidamente utilizo el método ExpulsarCDRom.Expulsar:
1 static void Main(string[] args) 2 { 3 //Obtener la lista de dispositivos de CDRom 4 var CDRomDrives = from drive in System.IO.DriveInfo.GetDrives() 5 where drive.DriveType == System.IO.DriveType.CDRom 6 select drive; 7 8 9 //A cada uno de ellos hacerlo abrir 10 foreach (DriveInfo cdRom in CDRomDrives) 11 ExpulsarCDRom.Expulsar(cdRom.Name); 12 }
Artículo completo: http://juank.black-byte.com/c-abrir-puerta-cd-rom/
Esta es la implementación final de ExpulsarCDRom en C#
Juan Carlos Ruiz - http://juank.black-byte.com
Todas las respuestas
-
jueves, 12 de febrero de 2009 16:45he actualizado el viculo pues al parecer estaba mal
Juan Carlos Ruiz - http://juank.black-byte.com -
jueves, 05 de marzo de 2009 7:29Cosas que aún no entiendo a estas alturas de .NET es que tengamos que seguir acudiendo a código no administrado.Creo que hay que pasar todo a .NET y no tener que acudir a la API de Windows, si no que me digan los que no entienden del manejo de API de Windows y ya sea un mundo para ellos el manejo de .NET tanto en C# como VB.NET.De todos modos muy agradecido por tu código amigo.Saludos.Francisco J.
-
viernes, 06 de marzo de 2009 4:07Hola,
ten presente que .net como tal no existe es solo una 'marca'quie utilizo microsoft para referirse a una tecnología en este caso el CLR.
Esta tecnologia fue creada para ser multiplataforma, es decir que sin necesidad de recompilar el codigo ni modificarlo puedes ejecutar tus programas en otras maquinas y sistemas operativos como unix o linux que soporten la misma versión de CLR y componentes del framework.
Por tal motivo, al igual que otros lenguajes multiplataforma, hay cosas que se pueden y deben hacer y otras que no.
El caso especifico de este hilo es manejar un dispositivo: el cd rom o el quemador de cd, este tiene asociado un driver y en un sentido altamente estricto no le corresponde la CLR tener soporte para manejar o acceder las caracteristicas de los dispositivos, eso es tarea del sistema operativo como tal ya que usualmente estos dispotitivos se manejan de maneras muy diferentes de un sistema a otro, incluso dentro de los sistemas *nix la manera de acceder a un dispositivo puede variar considerablemente entre algunas distribuciones, y si para colmo tienes un dispositivo de CDRom que no es standard posiblemente tambien esta tarea este altamente atada a un conjunto de dirvers que pueden variar de un sistema a otro ( por ejemplo de windows vista a XP ).
Si bien es posible integrar estas funcionalidades al Framework directamente , con el subsecuente esfuerzo adicional, seguramente que los arquitectos y diseñadores del CLR y del framework hantenido argumentos suficientes para no hacerlo al menos por el momento, pues hasta donde podemos mirar la función del framework es ser un marco de trabajo para aplicaciones de tipo general, no necesariamente repetir todas als funcionalidades del sistema operativo en una capa de más alto nivel.
Juan Carlos Ruiz - http://juank.black-byte.com -
viernes, 06 de marzo de 2009 7:04Bueno la verdad casi has logrado convencerme :D jejeje, es broma.No si razón no te falta, ni les falta a ellos, pero algunos ejemplos como éste, que aunque dependan del S.O sí deberían estar ya implementadas en el .NET Framework. En mi caso me refiero a WMI, y demás.Pero bueno, a esperar :D.Saludos y gracias.Francisco J.

