我想阻止用户将文件备份到光盘,因此我必须确定CDROM驱动器是否可写。
在Windows下如何做?
答案 0 :(得分:3)
Windows CD刻录机的驱动器索引(0 = A,1 = B等)可以在注册表中找到 HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CD Burning \ DriveIndex 强>
答案 1 :(得分:1)
正如本页所述: http://msdn.microsoft.com/en-us/library/windows/desktop/bb776153%28v=vs.85%29.aspx
GetRecorderDriveLetter将返回驱动器号,它是一个刻录机(如果存在),如果没有可以刻录CD的驱动器,它将返回错误代码。
如果您需要更多样品,只需搜索API
即可答案 2 :(得分:1)
您可以使用开源CD / DVD录制应用InfraRecorder(git repo)使用的方法。
InfraRecorder使用ckmmc库来获取使用ckmmc::DeviceManager
类的兼容设备列表(当然它支持多个设备)。
首先,它使用ckmmc DeviceManager::scan()
扫描所有设备,然后使用方法MmcDevice::recorder()
检查设备是否为记录器。
你会认为使用GetDriveType()
或DeviceIoControl()
之类的东西必须有更简单的方法,但不幸的是,这并不是那么简单。
ckmmc
支持两种不同的设备访问方法:ASPI(高级SCSI编程接口)和SPTI(SCSI传递接口)。为了获得驱动器属性,它实际上将SCSI命令发送到设备,然后它才能分析SCSI模式页面并告知哪些记录模式(CD-R,CD-RW,DVD-R,DVD + R等)硬件支持(如果有的话)。