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()、次に method を使用してデバイスがレコーダかどうかを確認しますMmcDevice::recorder()

GetDriveType()またはのようなものを使用してこれを行う簡単な方法があるに違いないと思うかもしれませんがDeviceIoControl()、残念ながらそれほど単純ではありません。

ckmmcは、ASPI (Advanced SCSI Programming Interface) と SPTI (SCSI Pass-Through Interface) の 2 つの異なるデバイス アクセス方法をサポートしています。ドライブのプロパティを取得するために、実際に SCSI コマンドをデバイスに送信します。その後、SCSI モード ページを分析し、どの記録モード (CD-R、CD-RW、DVD-R、DVD+R など) のハードウェアかを判断できます。サポートします(ある場合)。

于 2013-01-07T02:04:38.703 に答える