Abrir/cerrar la bandeja del CD  

Enviado Por: Q3 Team
Web : http://www.q3.nu
Email: dlib@q3.nu
Fecha: 06/09/99

Truco accedido 92 veces

 


Añade 'MMSystem' en el uses de tu form


 	procedure OpenCd(AOpen:Boolean);
 	const
   		DoPlay : array[Boolean] of String =
 	               ('Set cdaudio door closed wait',
 		      	'Set cdaudio door open wait');
 	var
 	  MyError       : LongInt;
 	  MyErrorString : array[0..MAXERRORLENGTH - 1] of char;
 	begin
 	  MyError := mciSendString(pChar(DoPlay[AOpen]), nil, 0, 0);
 	  if MyError <> 0 then
 	  begin
 	    MciGetErrorString(MyError,MyErrorString,MAXERRORLENGTH - 1);
 	    Showmessage(MyErrorString);
 	    Exit;
 	  end;
 	end;




Para abrir el CD:


    OpenCd(TRUE);




Para cerrar el CD:


    OpenCd(FALSE);





El anterior truco esta muy bien, pero si tenemos más de una unidad de CD no deja seleccionar cual abrir.
Para eso usaremos este otro código:

  • Añade 'MPlayer' en el uses de tu form


     procedure TForm1.Button1Click(Sender: TObject);
    
     procedure AbreCD(Disco : char);
     var
       Tokata : TMediaPlayer;
     begin
       Tokata := TMediaPlayer.Create(nil);
       with Tokata do
       begin
         Parent := Self;
         Visible := FALSE;
         Shareable := TRUE;
         DeviceType := dtCDAudio;
         FileName := Disco + ':';
         Wait:=FALSE;
         Open;
         Eject;
         Close;
         Free;
       end;
     end;
    
     begin
       AbreCD('F');
     end;
    




    Actualizado el 23/08/99 (¡Vaya! Hoy es mi cumpleaños...)
    Añadido el segundo ejemplo


    Actualizado el 06/09/99
    Faltaba el 'uses MMSystem' ...