我覺得有點小技巧了,因爲獲取CPU的硬件信息,所以我提出了這個要求:硬盤驅動器,CD/DVD /藍光閱讀器,軟盤和如果有可能的USB。 我一直在尋找MSDN GetDriveType,但似乎我在尋找不好或我不明白它。任何想法?如何確定特定驅動器的類型?
回答
我不知道你不明白你鏈接到文件...
由函數接受的唯一參數是要獲取有關信息(包括驅動器的根目錄一個尾隨的反斜槓)。該函數返回一個值,指示哪種類型的驅動器是。顯示的圖表給出了可能的返回值以及它們各自的含義。
例如:
GetDriveType(_T("C:\\")) // returns DRIVE_FIXED if C:\ is my hard drive
GetDriveType(_T("A:\\")) // returns DRIVE_REMOVABLE if A:\ is my floppy drive
GetDriveType(_T("D:\\")) // returns DRIVE_CDROM if D:\ is a CD-ROM drive
GetDriveType(_T("N:\\")) // returns DRIVE_REMOTE if N:\ is a network drive
它還說,如果你想確定驅動器是否是USB型驅動器,你需要調用SetupDiGetDeviceRegistryProperty
function並指定SPDRP_REMOVAL_POLICY
屬性。
什麼.h(頭文件)是GetDrivePath?如果它需要一個。 – Kazuma 2011-02-17 08:33:32
@Kazuma:所有信息位於MSDN上每個文檔頁面的最底部。在這種情況下,它說:「WinBase.h(包括Windows.h)」。這意味着它在`WinBase.h`中定義,但是你不應該自己包含它。你應該已經包含`Windows.h`,所以你不需要做其他任何事情。 – 2011-02-17 08:36:44
我所知道的Windows中唯一使用該信息的全功能API是WMI,但使用起來並不是非常簡單。另一方面,許多程序使用直通控制代碼或I/O控制代碼(如SMART_RCV_DRIVE_DATA)直接與設備通信。
(我不知道怎麼Speccy的作品,但我猜它使用這些方法的組合來獲得所需的系統信息。)
如果要確定一個設備是USB設備,您可以打開其句柄並使用DeviceIoControl()發送IOCTL查詢以獲取設備連接的總線類型。
EnumUsbDrivesLetters - 這篇文章是用俄語編寫的,但它包含C++源代碼,所以很容易理解。
乾杯,安德里
- 1. 如何確定驅動器的類型?
- 2. 如何使用跨平臺方法確定驅動器類型
- 3. 如何禁用特定的驅動器
- 4. 如何確定驅動器是否是外置驅動器
- 5. 確定驅動器是SAN
- 6. 從驅動器號獲取特定設備類型
- 7. Linux C/C++或bash腳本:確定驅動器/設備類型
- 8. 如何確定泛型超類的特定子類的ACTUAL返回類型?
- 9. 如何使用C語言確定存儲類型(SSD驅動器或HHD。機械驅動器)
- 10. 如何在谷歌驅動器文件中指定列類型?
- 11. 布爾檢查是否有任何驅動器包含特定的驅動器類型
- 12. 如何動態確定ResultSet列類型
- 13. 如何確定MongoDB服務器類型
- 14. NSIS SelectFolderDialog特定的驅動器
- 15. 確定網絡驅動器的協議
- 16. 如何確定Mac上的啓動驅動器?
- 17. 如何確定組類型?
- 18. 如何確定類型?
- 19. 確定Java中硒驅動程序的類型
- 20. 特定迭代器類型
- 21. 如何確定當前類的類型?
- 22. 確保SML特定類型的結果
- 23. 正在下載到特定驅動器
- 24. 淨使用,刪除特定驅動器
- 25. 如何指定一類特定的泛型類型?
- 26. 如何在Scala中定義特定容器類型的方法?
- 27. 確定驅動器中有光盤
- 28. 從MDItemRef確定本地驅動器
- 29. 如何從特定驅動器中的表單保存數據
- 30. 如何訪問USB驅動器的特定地址
你想獲得什麼信息?給定驅動器是什麼類型的驅動器?卷/分區大小?物理設備信息? – 2011-02-17 07:29:54