2009-07-22 11 views
5

Me gustaría identificar los medios DVDR del código .NET. Es posible y ¿cómo?¿Puedo identificar de manera única el medio DVDR (W) (+/-) de .NET?

Algún tipo de biblioteca que llama a la API de Windows.

ACTUALIZACIÓN

tengo mucha DVDRs y necesito para identificar cada uno de ellos, pero no depende del contenido o el nombre del disco. Algún tipo de número de serie de cada DVDR, que DVDR obtiene en fábrica.

Respuesta

2

Puede lograrlo utilizando la API IMAPI v2.

Una vez que tenga las referencias correctas dentro de su proyecto .NET, junto con las varias enumeraciones que se definen dentro de esa API (¡y hay bastantes de ellas!), El código es relativamente sencillo. Algo así como (pseudo-código):

IDiscRecorder2 discRecorder = (IDiscRecorder2)[*cd/dvd drive*]; 
discFormatData.Recorder = discRecorder; 
IMAPI_MEDIA_PHYSICAL_TYPE mediaType = discFormatData.CurrentPhysicalMediaType; 
string mediaTypeString = GetMediaTypeString(mediaType); 

where: 
IMAPI_MEDIA_PHYSICAL_TYPE is an enum such like: 

public enum IMAPI_MEDIA_PHYSICAL_TYPE 
{ 
    IMAPI_MEDIA_TYPE_UNKNOWN = 0, 
    IMAPI_MEDIA_TYPE_CDROM = 1, 
    IMAPI_MEDIA_TYPE_CDR = 2, 
    IMAPI_MEDIA_TYPE_CDRW = 3, 
    IMAPI_MEDIA_TYPE_DVDROM = 4, 
    IMAPI_MEDIA_TYPE_DVDRAM = 5, 
    [not the complete enum...snipped for brevity!] 
} 

and the "GetMediaTypeString" function simply gives a friendly string 
representation of the enum name. 

Hay un buen proyecto de artículo y la muestra en el sitio web CodeProject que demuestra esta forma bastante completa:

Burning and Erasing CD/DVD/Blu-ray Media with C# and IMAPI2

Ese proyecto contiene mucho más que la detección de la tipo de medio (¡de ahí el título!), pero contiene código para detectar efectivamente el tipo de medio antes de grabar/borrar el medio.

Desde el artículo:

Determinación del tipo de medios

Para determinar el tipo de medio y el espacio disponible en el disco duro, se crea un objeto MsftDiscFormat2Data y ajuste la grabadora actual en la propiedad del registrador . A continuación, puede obtener el tipo de medio de la propiedad IDiscFormat2Data CurrentPhysicalMediaType.

Una vez que tenga el tipo de medio, cree un objeto MsftFileSystemImage y llame al método ChooseImageDefaultsForMediaType con el tipo de medio.

Cuestiones relacionadas