17

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

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

我可以用

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

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

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

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

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

4

2 回答 2

5

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

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

MediaLoaded 属性将有助于情况 2(假)和 3(真)

于 2011-06-14T13:22:52.700 回答
1

IOCTL_DISK_GET_LENGTH_INFO可能对您有用。

于 2011-06-14T11:15:04.897 回答