打开光驱
  procedure TForm1.OpenCDRomClick(Sender: TObject);
  begin
  mciSendString('Set cdaudio door open wait', nil, 0, handle);
  end;关闭光驱
  procedure TForm1.CloseCDRomClick(Sender: TObject);
  begin
  mciSendString('Set cdaudio door closed wait', nil, 0, handle);
  end;另外先在uses后加上MMSystem 

解决方案 »

  1.   

    //打开光驱 
    mciSendString('Set cdaudio door open wait', nil, 0, handle); 
    //关闭光驱 
    mciSendString('Set cdaudio door closed wait', nil, 0, handle) 
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    var
      dwTemp1,dwTemp2: DWord;
      NResult: DWORD;
    begin
      new(NResult);
      GetVolumeInformation(PChar('g:\'), Nil, 0, @Result, dwTemp1, dwTemp2, Nil, 0);
      if Result = 0 then
        ShowMessage('CDROM is not Ready!');
    end; 
      

  3.   

    以下是一个函数,是抄来的,不知对你合不合用?
    function CDROMReady(DRV:char):boolean;
    var
      i:dword;
      buf:array[0..MAX_PATH] of char;
      pd:DWORD;
    begin
      pd:=0;
      GetVolumeInformation(DRV+':\',buf,i,@pd,i,i,buf,i);
      result:=pd<>0;
    end;