¿Hay una manera fácil de detectar si un disco está insertado en la unidad de DVD? No me importa qué tipo de disco (CD, DVD o Blu-Ray)?Detectando si el disco está en la unidad de DVD
Respuesta
utilizar WMI para detectar si el disco en la unidad de CD/DVD:
foreach (var drive in DriveInfo.GetDrives()
.Where(d => d.DriveType == DriveType.CDRom))
MessageBox.Show(drive.Name + " " + drive.IsReady.ToString());
de here.
DriveType Enumeration pueden ayudarle a qué tipo de disco:
CDRom
: La unidad es un dispositivo de disco óptico, como un CD o DVD-ROM.Fixed
: El disco es un disco fijo.Network
: El disco es una unidad de red.NoRootDirectory
El disco no tiene un directorio raíz.Ram
: El disco es un disco RAM.Removable
: La unidad es un dispositivo de almacenamiento extraíble, como una unidad de disquete o una unidad flash USB.Unknown
: Se desconoce el tipo de unidad.
de tipo de CD/DVD/Blue-Ray ver IMAPI_MEDIA_PHYSICAL_TYPE enumeration:
- DESCONOCIDO
- CDROM
- CDR
- CDRW
- DVDROM
- DVD-RAM
- DVDPLUSR
- DVDPLUSRW
- DVDPLUSR_DUALLAYER
- DVDDASHR
- DVDDASHRW
- DVDDASHR_DUALLAYER
- DISCO
- DVDPLUSRW_DUALLAYER
- HDDVDROM
- HDDVDR
- HDDVDRAM
- BDROM
- BDR
- BDRE
- MAX
su código puede ser así:
public bool IsDiscAvailable(int driveNumber)
{
MsftDiscMaster2Class discMaster = new MsftDiscMaster2Class();
string id = discMaster[driveNumber];
MsftDiscRecorder2Class recorder = new MsftDiscRecorder2Class();
recorder.InitializeDiscRecorder(id);
MsftDiscFormat2DataClass dataWriter = new MsftDiscFormat2DataClass();
if (dataWriter.IsRecorderSupported(recorder))
{
dataWriter.Recorder = recorder;
}
else
{
Console.WriteLine("Recorder not supported");
return false;
}
if (dataWriter.IsCurrentMediaSupported(recorder))
{
var media = dataWriter.CurrentPhysicalMediaType;
if (media == IMAPI_MEDIA_PHYSICAL_TYPE.IMAPI_MEDIA_TYPE_UNKNOWN)
{
Console.WriteLine("Unknown media or no disc");
}
else
{
Console.WriteLine("Found disc type {0}", media);
return true;
}
}
else
{
Console.WriteLine("Disc absent or invalid.");
}
return false;
}
de here.
How to Detect CD-ROM is loaded in the CD-ROM drive
Desde el enlace de arriba
using System;
using System.Management;
class Application
{
public static void Main()
{
SelectQuery query =
new SelectQuery("select * from win32_logicaldisk where drivetype=5");
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(query);
foreach(ManagementObject mo in searcher.Get())
{
// If both properties are null I suppose there's no CD
if((mo["volumename"] != null) || (mo["volumeserialnumber"] != null))
{
Console.WriteLine("CD is named: {0}", mo["volumename"]);
Console.WriteLine("CD Serial Number: {0}", mo["volumeserialnumber"]);
}
else
{
Console.WriteLine("No CD in Unit");
}
}
// Here to stop app from closing
Console.WriteLine("\nPress Return to exit.");
Console.Read();
}
}
Debido a que los enlaces caducan, el simple hecho de proporcionar un enlace no constituye una buena respuesta. http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers/8259#8259 – spender
tienes razón, pero cuando algo ya sale, ¿por qué no? lo reutilizamos –
He publicado el código ahora, entonces no hay necesidad de votar. –
- 1. Determinación del código de región de una unidad de DVD en OS X en C SIN requerir que un DVD esté en la unidad
- 2. Detectando si el monitor está apagado
- 3. ¿Detectando si se está reproduciendo la música?
- 4. iOS - detectando si Game Center está deshabilitado
- 5. Detectando si el diálogo de entrada de archivo está abierto
- 6. Detectando si el caché de un navegador está lleno
- 7. Por código, ¿cómo puedo probar si una unidad de disco duro está durmiendo sin activarlo?
- 8. Coldfusion: Detectando si está siendo ejecutado por el programador
- 9. Detectando si la conexión a Internet está ocupada
- 10. Detectando si el navegador está navegando a otra página
- 11. Detectando si un navegador está en modo de pantalla completa
- 12. ¿Cómo detectar si una unidad específica es un disco duro?
- 13. Detectando si está instalada una base de datos Oracle
- 14. La unidad de red no está disponible si está mapeada por el servicio
- 15. Detectando si java está instalado y habilitado con javascript
- 16. Detectando que el dispositivo está enchufado
- 17. Detectando si NSNumber está entre 0 y 255
- 18. Detectando si un programa ya está instalado con NSIS
- 19. ¿Cómo puedo obtener la lista de todas las unidades pero también obtener el tipo de unidad correspondiente (extraíble, disco local o CD-ROM, DVD-ROM ... etc.)?
- 20. Detectando si la aplicación está en modo de diseño en Windows Phone 7 ViewModel
- 21. Detectando que la pila está llena
- 22. ¿Cómo pruebo la unidad para guardar el archivo en el disco?
- 23. Detectando si estoy ejecutando en SharePoint
- 24. Detectando programáticamente si hay una aplicación instalada en el iPhone
- 25. Detectando si ya se está ejecutando otra instancia de la aplicación
- 26. Detectando cuando el roaming está desactivado en Android
- 27. Detectando el uso activo de la cámara
- 28. Detectando si los auriculares están enchufados en el iPhone
- 29. detectando cuando la ventana emergente "Descarga de archivo" está cerrada
- 30. Detectando si la ventana es una ventana clave en cocoa
http://stackoverflow.com/questions/148742/how-to-detect-if-any-specific-drive-is-a-hard-drive – Musa
Hay una manera fácil de encontrar la respuesta que busca. Se llama buscar. Solo en este sitio hay una plétora de soluciones propuestas. – TheZ
@Musa - Esa pregunta no es lo que estoy preguntando. Esa pregunta se trata de detectar si una unidad es una unidad de CD-ROM o un disco duro. Nada que ver con lo que estoy pidiendo – Icemanind