如何确定CD是否在CD-ROM驱动器中
我在想如果有一个Windows API可以告诉我,如果CD-ROM/DVD-ROM驱动器中有空CD。如何确定CD是否在CD-ROM驱动器中
我已经看了一下GetVolumeInformation(),但是它只会带回实际CD-ROM驱动器上的信息,而不是它里面的媒体,如果它里面还有CD。
我想要做的是看看驱动器中是否有cd,并返回一个布尔值。
感谢您的任何帮助
上的根目录呼叫GetFileAttributes()
。 GetFileAttributes()
是相当优化的,因为它通常用来检查文件或目录是否存在。
另一种方法是调用GetDiskFreeSpace
,它(尽管它的名称)也返回总磁盘大小。
壳牌也有一些有用的功能。 SHGetDriveMedia
会告诉你什么是加载的,但你应该先拨打GetDriveType()
。
好吧,我尝试了所有这些命令,但没有一个可以正常工作。他们只是不读媒体。感谢您指点我正确的方向。 – Drake0727 2010-11-04 19:12:59
@ Drake0727:这很奇怪。你是说'GetDiskFreeSpace()'实际上不会返回CD大小吗? – MSalters 2010-11-05 09:30:49
不,它不。 Getfileattributes不返回任何内容; Getdiskfreespace我已经在使用不同的功能,它适用于HD和闪存驱动器,但不适用于CD-ROM;而SHGetDriveMedia是一个Windows Vista和API,我不幸需要XP兼容性。 – Drake0727 2010-11-05 13:56:32
您可以使用DeviceIoControl API传递IOCTL_STORAGE_CHECK_VERIFY作为dwIoControlCode。这将检查一个特定的光盘驱动器是否准备就绪。即有一个光盘,当然,托盘是关闭的。有关此功能的更多信息,请查阅DeviceIoControl MSDN文档。
删除了qt标签,与qt无关。 – 2010-11-02 21:00:41