刻录光盘的源代码研究

问了,找了很久都没有办法解决的刻录问题,几经周折后,取了一个可行的办法。介绍给有兴趣的人。  
   
  如果你手上有   DirectCD   5.0   以上版本,那么就能使用   SHFileOperation   函数直接向CD-R   或者CD-RW   写文件。  
   
  函数声明如下:  
  Private   Type   SHFILEOPSTRUCT  
                  hwnd   As   Long  
                  wFunc   As   Long  
                  pFrom   As   String  
                  pTo   As   String  
                  fFlags   As   Integer  
                  fAnyOperationsAborted   As   Boolean  
                  hNameMappings   As   Long  
                  lpszProgressTitle   As   String  
  End   Type  
   
  Const   FO_COPY   =   &H2  
  Const   FOF_ALLOWUNDO   =   &H40  
   
  Private   Declare   Function   SHFileOperation   Lib   "shell32.dll"   Alias   "SHFileOperationA"   (lpFileOp   As   SHFILEOPSTRUCT)   As   Long  
   
  对于一张新的刻录盘,必需先调用   DirectCD.exe   ,使用它的“格式化”或者“标记光盘为可写”的功能,总的目的就是让刻录盘可写,然后使用   SHFileOperation   函数直接向光盘写文件就行。  
   
  用DirectCD.exe   格式化后的刻录盘同时可以使用GetVolumeInformation和GetDiskFreeSpaceEx函数获取光盘信息,函数声明如下:  
   
  Private   Declare   Function   GetVolumeInformation   Lib   "kernel32"   Alias   "GetVolumeInformationA"   (ByVal   lpRootPathName   As   String,   ByVal   lpVolumeNameBuffer   As   String,   ByVal   nVolumeNameSize   As   Long,   lpVolumeSerialNumber   As   Long,   lpMaximumComponentLength   As   Long,   lpFileSystemFlags   As   Long,   ByVal   lpFileSystemNameBuffer   As   String,   ByVal   nFileSystemNameSize   As   Long)   As   Long  
   
  Private   Declare   Function   GetDiskFreeSpaceEx   Lib   "kernel32"   Alias   "GetDiskFreeSpaceExA"   (ByVal   lpRootPathName   As   String,   lpFreeBytesAvailableToCaller   As   Any,   lpTotalNumberOfBytes   As   Any,   lpTotalNumberOfFreeBytes   As   Any)   As   Long  
   
  希望对需要写刻录功能的人能有所帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值