2010-11-01 80 views
3

我在想如果有一個Windows API可以告訴我,如果CD-ROM/DVD-ROM驅動器中有空CD。如何確定CD是否在CD-ROM驅動器中

我已經看了一下GetVolumeInformation(),但是它只會帶回實際CD-ROM驅動器上的信息,而不是它裏面的媒體,如果它裏面還有CD。

我想要做的是看看驅動器中是否有cd,並返回一個布爾值。

感謝您的任何幫助

+0

刪除了qt標籤,與qt無關。 – 2010-11-02 21:00:41

回答

1

上的根目錄呼叫GetFileAttributes()GetFileAttributes()是相當優化的,因爲它通常用來檢查文件或目錄是否存在。

另一種方法是調用GetDiskFreeSpace,它(儘管它的名稱)也返回總磁盤大小。

殼牌也有一些有用的功能。 SHGetDriveMedia會告訴你什麼是加載的,但你應該先撥打GetDriveType()

+0

好吧,我嘗試了所有這些命令,但沒有一個可以正常工作。他們只是不讀媒體。感謝您指點我正確的方向。 – Drake0727 2010-11-04 19:12:59

+0

@ Drake0727:這很奇怪。你是說'GetDiskFreeSpace()'實際上不會返回CD大小嗎? – MSalters 2010-11-05 09:30:49

+0

不,它不。 Getfileattributes不返回任何內容; Getdiskfreespace我已經在使用不同的功能,它適用於HD和閃存驅動器,但不適用於CD-ROM;而SHGetDriveMedia是一個Windows Vista和API,我不幸需要XP兼容性。 – Drake0727 2010-11-05 13:56:32

0

您可以使用DeviceIoControl API傳遞IOCTL_STORAGE_CHECK_VERIFY作爲dwIoControlCode。這將檢查一個特定的光盤驅動器是否準備就緒。即有一個光盤,當然,托盤是關閉的。有關此功能的更多信息,請查閱DeviceIoControl MSDN文檔。

相關問題