在 Windows 中检测 DVD 刻录机
有没有办法使用 C++ 检测 Windows 系统中可用的 DVD 刻录机?我知道如何检测所有可用的驱动器,但我希望能够检测哪些驱动器能够刻录 DVD 介质。
Is there anyway to dectect available DVD burners in a windows system using c++? I know how to detect all available drives but I would like to be able to detect which ones have the ability to burn DVD media.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要的是图像掌握 API (IMAPI)。要列出可用设备,您可以使用
IDiscMaster: :EnumDiscRecorders
.What you want is the Image Mastering API (IMAPI). To list the available devices you can use
IDiscMaster::EnumDiscRecorders
.::获取驱动器类型()
::GetVolumeInformation()
是我所知道的两个 API,它们可能会为您提供您需要了解的信息。
然而,两者都没有明确的规定。获取“这个 DVD 驱动器是刻录机吗?”的明显方法
::GetDriveType()
::GetVolumeInformation()
Are the two APIs that I know of that may get you what you need to know.
However, neither has a clear & obvious way of obtaining "is this DVD drive a recorder?"
您可以获取
GET_MEDIA_TYPES
(请参阅http://msdn .microsoft.com/en-us/library/aa363264.aspx),关于IOCTL_STORAGE_GET_MEDIA_TYPES_EX
(请参阅 http://msdn.microsoft.com/en-us/library/aa363413.aspx)。您可以使用 if 就像 http://msdn.microsoft.com/en-我们/library/aa363147.aspx。来自GET_MEDIA_TYPES
的信息包含您需要的所有信息。You can get
GET_MEDIA_TYPES
(see http://msdn.microsoft.com/en-us/library/aa363264.aspx) with respect ofIOCTL_STORAGE_GET_MEDIA_TYPES_EX
(see http://msdn.microsoft.com/en-us/library/aa363413.aspx). You can use if like in http://msdn.microsoft.com/en-us/library/aa363147.aspx. Information fromGET_MEDIA_TYPES
has all information which you need.