C#如何判断DVD驱动器托盘是否打开?

时间:2011-06-14 09:44:47

标签: c# winapi dvd

我在C#中有DVD阅读和刻录应用程序。我希望能够检测空驱动器(无磁盘)和打开驱动器之间的区别。

编辑:经过一些更多的谷歌搜索,我认为更好的问题描述是“我想访问驱动器托盘状态 - 打开或关闭

我可以用

ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk WHERE DriveType= 5")

找到系统中的所有DVD驱动器,属性告诉我驱动器中是否有磁盘。 Access属性告诉我是否有空白磁盘。

但是当驱动器打开,驱动器关闭并且为空时,Access为空。当驱动器打开或关闭时,我看不到任何其他属性发生变化。

任何人都知道区分开放式驱动器与封闭式空载驱动器的方法吗?

我使用的是Win7,但理想情况下,该解决方案也适用于XP和Vista。

2 个答案:

答案 0 :(得分:5)

MediaLoaded属性(Win32_CDROMDrive)将告诉您是否已加载光盘。我对你要找的东西感到有点困惑:

  1. 磁盘托盘打开
  2. 磁盘托盘已关闭 - 无媒体
  3. 磁盘托盘关闭 - 有媒体
  4. MediaLoaded属性将在案例2(False)和3(True)

    中提供帮助

答案 1 :(得分:1)

IOCTL_DISK_GET_LENGTH_INFO可能对您有用。