我们在进行Windows编程的时候经常需要进行操作光驱,请见代码实现与注释讲解。
/* 头文件 */ #include <windows.h> #include <stdio.h> #include <tchar.h> /* 预定义 */ #define BUFSIZE 512 /* ************************************ * int main( int argc, PCHAR argv[] ) * 功能 应用程序主函数,根据输入的驱动器 * 根路径参数判断是否为光驱,是否放 * 入光盘。 * 参数 驱动器根路径,比如“D:\”。 **************************************/ int main( int argc, PCHAR argv[] ) { //存储文件系统类别名 CHAR szFileSystemNameBuffer[BUFSIZE]; DWORD dwLastError; DWORD dwFileSystemFlags; //判断是否输入运行时参数 if( argc != 2 ) { printf("请输入驱动器的根路径,比如: \"D:\\\"\n"); return( -1 ); } //判断输入的驱动器是否为CD\DVD ROM if(GetDriveType(argv[1])!=DRIVE_CDROM) { printf("驱动器 %s 不是 CD/DVD ROM。\n",argv[1]); return( -1 ); } //获取卷信息 if (!GetVolumeInformation( argv[1], NULL, 0, NULL,NULL, &dwFileSystemFlags, szFileSystemNameBuffer, BUFSIZE )) { dwLastError = GetLastError(); if(dwLastError == 21) { printf("设备未就绪,请放入光盘!\n"); return 0; } else { printf("GetVolumeInformation 错误 %d\n",dwLastError); return 0; } } printf ("光盘已经放入,文件系统类别 %s。\n",szFileSystemNameBuffer); return 0; }