关于光盘的问题 (0分)

  • 主题发起人 主题发起人 ql
  • 开始时间 开始时间
Q

ql

Unregistered / Unconfirmed
GUEST, unregistred user!
1、如何获得光盘盘符?
2、如何得知光驱中是否有光盘?
3、如何获得光盘的卷标?
本人水平实在有限,敬请各位高手多多指教!!!
 
请多多指教
谢谢
 
说明请尽量详细些,本人感激不尽
 
哈哈。。。
为什么要删除??
 
是删不掉了才另改题目的,总是留着不好啊
 
1、用GetDriveType可以知道盘的类型
var
i:integer
Drive:char;
DriveType:integer;
Display:string;
begin
for i:=1 to 26 do
begin
Drive:=chr(64+i);
DriveType:=GetDriveType(pchar(Drive+':/'));
{0 The drive type cannot be determined.
1 The root directory does not exist.
DRIVE_REMOVABLE The drive can be removed from the drive. 2
DRIVE_FIXED The disk cannot be removed from the drive. 3
DRIVE_REMOTE The drive is a remote (network) drive. 4
DRIVE_CDROM The drive is a CD-ROM drive. 5
DRIVE_RAMDISK The drive is a RAM disk. 6
}
Display:='驱动器'+Drive+':';
case DriveType of
0:Display:=Display+'不存在';
1:Display:=Display+'找不到根目录';
2:Display:=Display+'可移动盘';
3:Display:=Display+'硬盘';
4:Display:=Display+'网络盘';
5:Display:=Display+'光驱';
6:Display:=Display+'虚拟盘';
end;
Memo1.Lines.Add(Display);
end;
end;

2、这个没注意,不过取卷标就是个方法,有卷标就是有光盘

3、取得卷标, 例: GetDiskVolume('c')
function GetDiskVolume(DiskChar: Char):string;
var
DiskID : pDWord;
DiskIPMax, DiskIPFile : dword;
Buffer : array [0..255] of char;
begin
New(DiskID);
GetVolumeInformation(PChar(diskchar+':/'), Buffer, SizeOf(Buffer), DiskID,DiskIPMax,DiskIPFile,nil,0);
//result := inttostr(DiskID^);
result:=Buffer;
dispose(DiskID);
end;
 
全文检索可以用了,地址:http://24.103.53.13/index.html
这是我找到的,以前同样的问题有答案
http://www.delphibbs.com/delphibbs/dispq.asp?lid=316189
 
非常感谢,谢谢
 

Similar threads

后退
顶部