如何确定CD是否在CD-ROM驱动器中

时间:2010-11-01 19:24:28

标签: c++ windows

我想知道是否有一个Windows API可以告诉我CD-ROM / DVD-Rom驱动器中是否有空CD。

我已经查看了GetVolumeInformation(),但这只会带回实际CD-ROM驱动器的信息,而不是其中的媒体信息,如果有的话甚至还有CD。

我要做的就是查看驱动器中是否有CD,并返回一个布尔值。

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

您正在寻找的API很可能是IMAPI。

我认为这篇文章对您有所帮助http://msdn.microsoft.com/en-us/magazine/cc163992.aspx

答案 1 :(得分:1)

在根目录上调用GetFileAttributes()GetFileAttributes()已经过优化,因为它通常用于检查文件或目录是否存在。

另一种方法是调用GetDiskFreeSpace,它(尽管名称)也返回总磁盘大小。

Shell还有一些有用的功能。 SHGetDriveMedia会告诉您已加载的内容,但您应首先致电GetDriveType()

答案 2 :(得分:0)

您可以使用DeviceIoControl API传递IOCTL_STORAGE_CHECK_VERIFY作为dwIoControlCode。这将检查特定的磁盘驱动器是否准备就绪i。即它有一个光盘,当然,托盘是关闭的。有关此功能的更多信息,请查看DeviceIoControl MSDN文档。