基于visual c++之windows核心编程代码分析(7)操作光驱

我们在进行Windows编程的时候经常需要进行操作光驱,请见代码实现与注释讲解。

 

 

[cpp]  view plain  copy
  1. /* 头文件 */  
  2. #include <windows.h>  
  3. #include <stdio.h>  
  4. #include <tchar.h>  
  5. /* 预定义 */  
  6. #define BUFSIZE            512  
  7.   
  8. /* ************************************ 
  9.  * int main( int argc, PCHAR argv[] ) 
  10.  * 功能   应用程序主函数,根据输入的驱动器 
  11.  *      根路径参数判断是否为光驱,是否放 
  12.  *      入光盘。 
  13.  * 参数   驱动器根路径,比如“D:\”。 
  14.  **************************************/  
  15.   
  16. int main( int argc, PCHAR argv[] )  
  17. {  
  18.     //存储文件系统类别名  
  19.     CHAR szFileSystemNameBuffer[BUFSIZE];  
  20.     DWORD dwLastError;  
  21.     DWORD dwFileSystemFlags;  
  22.   
  23.     //判断是否输入运行时参数  
  24.     if( argc != 2 )   
  25.     {  
  26.         printf("请输入驱动器的根路径,比如: \"D:\\\"\n");  
  27.         return( -1 );  
  28.     }  
  29.       
  30.     //判断输入的驱动器是否为CD\DVD ROM  
  31.     if(GetDriveType(argv[1])!=DRIVE_CDROM)  
  32.     {  
  33.         printf("驱动器 %s 不是 CD/DVD ROM。\n",argv[1]);  
  34.         return( -1 );  
  35.     }  
  36.       
  37.     //获取卷信息  
  38.     if (!GetVolumeInformation(  
  39.         argv[1], NULL, 0,  
  40.         NULL,NULL,  
  41.         &dwFileSystemFlags,  
  42.         szFileSystemNameBuffer,  
  43.         BUFSIZE  
  44.         ))  
  45.     {  
  46.         dwLastError = GetLastError();  
  47.         if(dwLastError == 21)  
  48.         {  
  49.             printf("设备未就绪,请放入光盘!\n");  
  50.             return 0;  
  51.         }  
  52.         else  
  53.         {  
  54.             printf("GetVolumeInformation 错误 %d\n",dwLastError);  
  55.             return 0;  
  56.         }  
  57.     }  
  58.     printf ("光盘已经放入,文件系统类别 %s。\n",szFileSystemNameBuffer);  
  59.     return 0;  
  60. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值