在C++Builder中如何检测光驱中有没有光盘?
如题,谢谢! 问题点数:100、回复次数:10Top
1 楼BlueDeepOcean(蓝色·深海)回复于 2006-07-04 00:38:24 得分 30
char volname[255],filename[100]; // buffer[512];
DWORD sno,maxl,fileflag;
if(!(GetVolumeInformation("H:",volname,255,&sno,&maxl,&fileflag,filename,100)))
// 如果返回值为假
//Memo2->Lines->Add("CD-ROM中未发现光盘!");
MessageBox(Application->Handle," CD-ROM中未发现光盘!","提示",MB_ICONINFORMATION);
else
// 如果返回值为真
{
Memo2->Lines->Add("CD卷标为:" + String(volname));
Memo2->Lines->Add("CD序号为:" + String(sno));
}
Top
2 楼BlueDeepOcean(蓝色·深海)回复于 2006-07-04 00:39:03 得分 5
上面的“H:”是你的光驱盘符。Top
3 楼liangqingzhi(老之)回复于 2006-07-04 01:48:14 得分 40
AnsiString Drive;
for (int i=3;i<26;i++)
{
Drive=AnsiString(char(i+64))+":\\";
if (GetDriveType(Drive.c_str())==DRIVE_CDROM)
{
SetErrorMode(SEM_FAILCRITICALERRORS);
if (DiskSize(i)==-1)
ShowMessage("没光盘");
else
ShowMessage("有光盘");
}
}Top
4 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-07-04 06:26:24 得分 5
http://msdn.microsoft.com/msdnmag/issues/04/01/CQA/Top
5 楼puma66(飞马)回复于 2006-07-04 11:46:40 得分 0
谢谢以上三位朋友!补充一个问题,怎么判断一个驱动器是不是光驱呢?Top
6 楼puma66(飞马)回复于 2006-07-04 11:48:57 得分 0
哦,liangqingzhi(老之) 已经回答了这个问题:GetDriveType(Drive.c_str())==DRIVE_CDROM
谢谢!Top
7 楼nevergetwin(头球冲顶)回复于 2006-07-04 15:13:12 得分 5
对阿, liangqingzhi(老之)已经答了,结贴吧Top
8 楼jaffy(小胖猫^_^笨猫先飞)回复于 2006-07-04 15:51:53 得分 5
顶一个,MRAKTop
9 楼stevenjscn(小胖)回复于 2006-07-04 15:54:39 得分 5
MARKTop
10 楼chenjun716(吾空)回复于 2006-07-04 16:12:38 得分 5
看看Windows API函数的书Top




