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

解决方案 »

  1.   

    在uses部分加入mmsystem,接着增加两个TButton按钮,在按钮事件里写入下列语句,记住在调用完毕后一定要显示或判断returnstring,要不程序将出错:
    procedure TForm1.Button1Click(Sender: TObject);var returnstring:pchar;begin//弹出returnstring:='驱动器打开错误';mciSendString('set CDAudio door open',returnstring,127,0);label1.Caption :=returnstring;end;procedure TForm1.Button2Click(Sender: TObject);var returnstring:pchar;begin//关闭returnstring:='驱动器关闭错误';mciSendString('set CDAudio door closed',returnstring,127,0);label1.Caption :=returnstring;end;
      

  2.   

    function mciSendString(lpstrCommand,lpstrReturnString:
    PChar;uReturnLength :UINT;hWndCallback:HWND):MCIERROR;stdcall;   其中lpstrComman参数表示一个MCI命令行,如:’set cdaudio door open wait‘,‘set cdaudio door closed wait’等等你可以delphi中的mmSystem.pas中查看详细说明;而参数'lpstrReturnString'表示接收返回信息的缓冲区指针,如果不需要返回值这里可写为'nil',参数'uReturnLength'表示接收返回信息的缓冲区的长度,若上面为'nil'这里为'0','hWndCallback'参数表示回调窗口的句柄,在这里可写为'handle';  在我们的程序中原代码如下:  打开光驱门:procedure TForm1.N1Click(Sender: TObject);begin mcisendstring('set cdaudio door open wait',nil,0,handle);end;关闭关驱门:procedure TForm1.N2Click(Sender: TObject);begin mcisendstring('set cdaudio door closed wait',nil,0,handle);end;