Как определить, находится ли компакт-диск в приводе CD-ROM - PullRequest
3 голосов
/ 01 ноября 2010

Мне было интересно, есть ли Windows API, который может сказать мне, есть ли пустой CD внутри привода CD-ROM / DVD-Rom.

Я уже посмотрел на GetVolumeInformation (), но он возвращает только информацию о реальном приводе CD-ROM, а не о носителе, который находится внутри него, даже если в нем есть даже CD или нет.

Все, что я пытаюсь сделать, это посмотреть, есть ли на диске компакт-диск или нет, и вернуть логическое значение.

Спасибо за любую помощь

Ответы [ 3 ]

1 голос
/ 02 ноября 2010

Звоните GetFileAttributes() в корневой каталог.GetFileAttributes() довольно оптимизирован, поскольку обычно используется для проверки существования файла или каталога.

Другим методом является вызов GetDiskFreeSpace, который (несмотря на его имя) также возвращает общий размер диска.

В оболочке также есть несколько полезных функций.SHGetDriveMedia скажет вам, что загружено, но вы должны сначала позвонить GetDriveType().

1 голос
/ 01 ноября 2010

API, который вы ищете, скорее всего, IMAPI.

Я думаю, что эта статья может вам помочь http://msdn.microsoft.com/en-us/magazine/cc163992.aspx

0 голосов
/ 31 мая 2013

Вы можете использовать DeviceIoControl API, передавая IOCTL_STORAGE_CHECK_VERIFY в качестве dwIoControlCode.Это проверит, готов ли конкретный дисковод, т.е. есть ли в нем диск, и, конечно, лоток закрыт.Обратитесь к документации DeviceIoControl MSDN для получения дополнительной информации об этой функции.

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