用delphi做一个控件程序。能用时间控制光驱的进出。谢谢大家!做好后发到[email protected]我对delphi不是很熟。谢谢大家了

解决方案 »

  1.   

    uses mmsystemmcisendstring('set CDAudio door open wait',nil,0,handle);//开光驱mcisendstring('set CDAudio door closed wait',nil,0,handle);//关光驱 
      

  2.   

    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来处理