2009-07-22 23 views
5

Tôi muốn nhận dạng các phương tiện DVDR từ mã .NET. Nó có thể và làm thế nào?Tôi có thể nhận dạng duy nhất phương tiện DVDR (W) (+/-) từ .NET không?

Một số loại thư viện, gọi là API Windows.

CẬP NHẬT

Tôi có rất nhiều DVDRs và tôi cần phải xác định mỗi trong số họ, nhưng không phụ thuộc vào nội dung hoặc tên đĩa. Một số loại số sê-ri của mỗi DVDR, mà DVDR có trong nhà máy.

Trả lời

2

Bạn có thể đạt được điều này bằng cách sử dụng API IMAPI v2.

Khi bạn có các tham chiếu chính xác trong dự án .NET của bạn, cùng với các enums khác nhau được xác định trong API đó (và có một vài trong số chúng!), Mã tương đối đơn giản. Giống như (pseudo-code):

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. 

Có một bài viết và mẫu dự án tốt trên trang web CodeProject thể hiện này khá toàn diện:

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

dự án đó có chứa nhiều hơn chỉ là phát hiện loại phương tiện truyền thông (do đó tiêu đề!), nhưng không chứa mã để phát hiện có hiệu quả loại phương tiện trước khi đốt/xóa phương tiện.

Từ bài viết:

Xác Media Type

Để xác định loại phương tiện truyền thông và không gian có sẵn trên ổ cứng, bạn tạo một đối tượng MsftDiscFormat2Data và thiết lập các ghi hiện tại trong tài sản ghi . Sau đó bạn có thể lấy loại phương tiện từ thuộc tính IDiscFormat2Data CurrentPhysicalMediaType.

Khi bạn có loại phương tiện, hãy tạo đối tượng MsftFileSystemImage và gọi phương thức ChooseImageDefaultsForMediaType bằng loại phương tiện.

Các vấn đề liên quan