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

本文关键字:驱动器 是否 DVD 何判断 判断 | 更新日期: 2023-09-27 17:59:17

我在C#中有一个DVD读取和刻录应用程序。我希望能够检测空驱动器(没有磁盘)和打开驱动器之间的差异。

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

我可以使用

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

查找系统中的所有dvd驱动器,属性会告诉我驱动器中是否有磁盘。Access属性告诉我是否存在空白磁盘。

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

有人知道如何区分打开的驱动器和关闭的空驱动器吗?

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

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

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

  1. 磁盘托盘打开
  2. 磁盘托盘关闭-没有介质
  3. 磁盘托盘关闭-有介质

MediaLoaded属性将在情况2(False)和3(True)

中提供帮助IOCTL_DISK_GET_LENGTH_INFO可能对您有用。