C # Как определить, открыт ли лоток для дисковода DVD? - PullRequest
17 голосов
/ 14 июня 2011

У меня есть приложение для чтения и записи DVD на C #.Я хочу быть в состоянии обнаружить разницу между пустым диском (без диска) и открытым диском.

Редактировать: После некоторого поиска в Google, я думаю, что лучшее описание проблемы " Я хочу получить доступстатус лотка для дисков - открыт или закрыт"

Я могу использовать

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

, чтобы найти все DVD-диски в системе, и свойства сообщают мне, есть ли дискв драйв.Свойство Access сообщает мне, есть ли пустой диск.

Но Access равно нулю, когда диск открыт, а диск закрыт и пуст.И я не вижу никаких других свойств, которые изменяются, когда диск открывается или закрывается.

Кто-нибудь знает способ отличить открытый диск от закрытого и пустого диска?

Я использую Win7, но в идеале решение будет работать на XP и Vista.

Ответы [ 2 ]

5 голосов
/ 14 июня 2011

Свойство MediaLoaded (Win32_CDROMDrive) сообщит вам, загружен ли диск. Я немного смущен тем, что вы ищете:

  1. лоток для диска открыт
  2. лоток для диска закрыт - нет носителя
  3. лоток для диска закрыт - носитель

Свойство MediaLoaded поможет в случае 2 (False) и 3 (True)

1 голос
/ 14 июня 2011

IOCTL_DISK_GET_LENGTH_INFO может быть полезным для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...