uses mmsystemmcisendstring('set CDAudio door open wait',nil,0,handle);//开光驱mcisendstring('set CDAudio door closed wait',nil,0,handle);//关光驱
function TForm1.OpenCDRom(Drive: char): boolean; var res:mcierror; openparm:TMCI_Open_Parms; flags:dword; s:string; deviceid:word; begin result:=true; 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:=false; finally mcisendcommand(deviceid,mci_close,flags,longint(@openparm)); end; end;procedure TForm1.CloseCDClick(Sender: TObject); begin if closecdrom('h') then statusbar1.Panels[0].Text:='CDROM Close!'; end;function TForm1.CloseCDRom(Drive: char): boolean; var res:mcierror; openparm:TMCI_Open_Parms; flags:dword; s:string; deviceid:word; begin result:=true; 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_closed,0); if res = 0 then exit; result:=false; finally mcisendcommand(deviceid,mci_close,flags,longint(@openparm)); end; end; 至于用时间不就是加个Timer来处理
var
res:mcierror;
openparm:TMCI_Open_Parms;
flags:dword;
s:string;
deviceid:word;
begin
result:=true;
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:=false;
finally
mcisendcommand(deviceid,mci_close,flags,longint(@openparm));
end;
end;procedure TForm1.CloseCDClick(Sender: TObject);
begin
if closecdrom('h') then statusbar1.Panels[0].Text:='CDROM Close!';
end;function TForm1.CloseCDRom(Drive: char): boolean;
var
res:mcierror;
openparm:TMCI_Open_Parms;
flags:dword;
s:string;
deviceid:word;
begin
result:=true;
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_closed,0);
if res = 0 then exit;
result:=false;
finally
mcisendcommand(deviceid,mci_close,flags,longint(@openparm));
end;
end;
至于用时间不就是加个Timer来处理