for Drive:='a' to 'z'
do begin Case GetDriveType(Pchar(Drive+':\'))
of DRIVE_REMOVABLE: MyDrive:=Drive; DRIVE_FIXED: MyDrive:=Drive; DRIVE_CDROM: begin MyDrive:=Drive; tmppopmenu1:=TMenuItem.Create(Self); tmppopmenu1.AutoHotkeys:=maManual; tmppopmenu1.OnClick
:=
menuOpenCdrom; mOpenCDROM.Add(tmppopmenu1); tmppopmenu1.Caption
:=UpperCase(mydrive)+':'; tmppopmenu2:=TMenuItem.Create(Self); tmppopmenu2.AutoHotkeys:=maManual; tmppopmenu2.OnClick
:=
menuCloseCdrom; mCloseCDROM.Add(tmppopmenu2); tmppopmenu2.Caption
:=UpperCase(mydrive)+':'; end;
if
mOpenCDROM.Count > 1
then begin tmppopmenu1:=TMenuItem.Create(Self); tmppopmenu1.Caption:='所有光驱'; tmppopmenu1.OnClick
:=
menuOpenCdrom; mOpenCDROM.Add(tmppopmenu1); tmppopmenu2:=TMenuItem.Create(Self); tmppopmenu2.Caption:='所有光驱'; tmppopmenu2.OnClick
:=
menuCloseCdrom; mCloseCDROM.Add(tmppopmenu2); end;
end; 2)打开CDROM盒的函数
function OpenCDROM(Drive:pChar):Boolean; //
打开CDROM var Res:MciError; OpenParm:TMCI_OPEN_Parms; Flags:Dword; s:string; DeviceID:Word; begin Result:=false; s:=Drive+':'; flags:=mci_Open_Type
or mci_Open_Element; With OpenParm
do begin dwCallBack:=0; lpstrDeviceType:='CDAudio'; lpstrElementName:=PChar(s); end; Res:=mciSendCommand(0,mci_Open,Flags,Longint(@OpenParm)); If
Res<>0 then exit; DeviceID:=OpenParm.wDeviceID
; try Res:=mciSendCommand(DeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0); If
Res=0 then
exit; Result:=True; finally mciSendCommand(DeviceID,mci_Close,Flags,Longint(@OpenParm)); end; end;