1

我想阻止用户将文件备份到光盘,所以我必须确定 CDROM 驱动器是否可写。

Windows下怎么办?

4

3 回答 3

3

Windows CD 刻录机的驱动器索引(0 = A、1 = B 等)可以在注册表中的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CD Burning\DriveIndex中找到。

于 2013-01-07T00:48:35.163 回答
1

如本页所述:http: //msdn.microsoft.com/en-us/library/windows/desktop/bb776153%28v=vs.85%29.aspx

GetRecorderDriveLetter 将返回作为刻录机的驱动器号(如果存在),如果没有可以刻录 CD 的驱动器,它将返回错误代码。

如果您需要更多示例,只需搜索 API

于 2013-01-07T00:51:16.017 回答
1

您可以使用开源 CD/DVD 录制应用程序InfraRecorder ( git repo ) 使用的方法。

InfraRecorder 使用ckmmc库来获取使用类的兼容设备列表ckmmc::DeviceManager(当然,它支持多个设备)。

首先它使用 ckmmc 扫描所有设备DeviceManager::scan(),然后使用方法检查设备是否是记录器MmcDevice::recorder()

你会认为必须有更简单的方法来使用类似GetDriveType()or的东西来做到这一点DeviceIoControl(),但不幸的是它并不是那么简单。

ckmmc支持两种不同的设备访问方法:ASPI(高级 SCSI 编程接口)和 SPTI(SCSI Pass-Through 接口)。要获取驱动器属性,它实际上会向设备发送 SCSI 命令,然后它才能分析 SCSI 模式页面并判断哪些记录模式(CD-R、CD-RW、DVD-R、DVD+R 等)硬件支持(如果有的话)。

于 2013-01-07T02:04:38.703 回答