是否有一種簡單的方法可以檢測光盤是否插入DVD驅動器中?我不在乎什麼樣的光盤(CD,DVD或藍光)?檢測光盤是否在DVD驅動器中
回答
使用WMI來檢測是否磁盤在CD/DVD驅動器:
foreach (var drive in DriveInfo.GetDrives()
.Where(d => d.DriveType == DriveType.CDRom))
MessageBox.Show(drive.Name + " " + drive.IsReady.ToString());
從here。
DriveType Enumeration可以幫你什麼樣的光盤:
CDRom
:驅動器的光盤設備,如CD或DVD-ROM。Fixed
:驅動器是一個固定磁盤。Network
:驅動器是網絡驅動器。NoRootDirectory
驅動器沒有根目錄。Ram
:驅動器是RAM磁盤。Removable
:驅動器是可移動存儲設備,例如軟盤驅動器或USB閃存驅動器。Unknown
:驅動器的類型未知。
的一種CD/DVD的/藍光看到IMAPI_MEDIA_PHYSICAL_TYPE enumeration:
- UNKNOWN
- CDROM
- CDR
- CDRW
- DVDROM
- DVDRAM
- DVDPLUSR
- DVDPLUSRW
- DVDPLUSR_DUALLAYER
- DVDDASHR
- DVDDASHRW
- DVDDASHR_DUALLAYER
- DISK
- DVDPLUSRW_DUALLAYER
- HDDVDROM
- HDDVDR
- HDDVDRAM
- BD-ROM
- BDR
- BD-RE
- MAX
你的代碼可能是這樣的:
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;
}
從
here
。
How to Detect CD-ROM is loaded in the CD-ROM drive
從上面的鏈接
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();
}
}
由於鏈接到期,因此僅提供鏈接並不構成一個好的答案。 http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers/8259#8259 – spender 2012-07-10 19:26:00
你是對的,但是當事情已經存在,爲什麼不我們重複使用它 – 2012-07-10 19:27:24
我已經發布了代碼,然後沒有必要投下來。 – 2012-07-10 19:29:51
- 1. 檢測物理光驅是否存在
- 2. 檢測磁盤是否爲閃存驅動器
- 3. 檢測驅動器c中的dvd插入的最佳方法#
- 4. 確定驅動器中有光盤
- 5. 如何在java中檢查DVD-RAM驅動器中的CD或DVD
- 6. 如何檢測是否有任何特定的驅動器是硬盤驅動器?
- 7. 如何檢測驅動器在C#中是否有回收站?
- 8. 檢測文件是否在python中的網絡驅動器上
- 9. 禁用使用光盤驅動器(VB.NET)
- 10. 在Linux中檢測安裝的硬盤驅動器
- 11. 檢查是否存在windows驅動器
- 12. 檢測CMD中的可移動驅動器盤符
- 13. 檢查驅動器是否是主驅動器
- 14. 驅動器檢測只檢測一個驅動器?
- 15. C++ \ Win32的信息有關的所有驅動器:硬盤驅動器,USB驅動器,光盤驅動器,軟盤驅動器等
- 16. 有沒有辦法檢測驅動器是否是SSD?
- 17. 如何檢測USB閃存驅動器的盤符USB閃存驅動器的
- 18. 邏輯驅動器作爲DVD驅動器
- 19. 如何獲得所有驅動器的列表,但也可以獲取相應的驅動器類型(可移動,本地磁盤或光盤,DVD-ROM等)?
- 20. 檢測筆式驅動器
- 21. ASP.NET檢測USB驅動器
- 22. AppleScript檢測新驅動器
- 23. 如何使用批處理代碼檢測DVD/CD驅動器的字母
- 24. 如何檢測鍵盤是否存在
- 25. 檢查文件路徑是否在物理上位於硬盤驅動器
- 26. USB閃存驅動器模擬(如CD/DVD rom虛擬驅動器) - 是否有可能
- 27. 通過VBScript檢測USB和軟盤驅動器的字母
- 28. 在Windows中檢測DVD刻錄機
- 29. WaitForExit不會等待exe文件在DVD光盤中
- 30. 在Java中區分CD驅動器和硬盤驅動器
http://stackoverflow.com/questions/148742/how-to-detect-if-any-specific-drive-is-a-hard-drive – Musa 2012-07-10 19:22:46
有一種簡單的方法可以找到你要找的答案。它被稱爲搜索。僅在這個網站上就有很多提出的解決方案。 – TheZ 2012-07-10 19:24:52
@Musa - 這個問題不是我要問的。這個問題是關於檢測驅動器是CDROM驅動器還是硬盤驅動器。與我所要求的無關 – Icemanind 2012-07-10 19:40:48