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

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

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

我可以用

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

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

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

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

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

MediaLoaded属性(Win32_CDROMDrive)将告诉您是否已加载光盘。 我有点困惑你在找什么:

  1. 磁盘托盘打开
  2. 磁盘托盘关闭 – 没有媒体
  3. 磁盘托盘关闭 – 有媒体

MediaLoaded属性将在case 2(False)和3(True)中提供帮助

IOCTL_DISK_GET_LENGTH_INFO可能对您有用。