当然是使用多条 mci 完成!

解决方案 »

  1.   

    好象加个all就可以了
    Set all cdaudio door open wait
      

  2.   

    完整的函数,弹出虚拟光驱后,对下一个光驱无反应,执行多次无效
    Set all cdaudio door open  这句有错,弹出CD托盘出现错误 驱动程序无法识别指定的命令参数。 Procedure TAction.EjectCdrom(Const Value: Boolean);
    Var    err: integer;
        buf: Array[0..128] Of char;
    Begin
        If value Then
            If Iscdromready Then
            Begin
                err:=mciSendString(pchar('set cdaudio door open'), Nil, 0, 0);
                If (err = 0) Then
                    addstat(SOpenCdrom)
                Else
                Begin
                    mciGetErrorString(err, buf, sizeof(buf));
                    AddStat(EOpenCdrom, buf);
                End;
            End;
    End;
      

  3.   

    枚举系统中的光驱设备,再发送给mciSendCommand
      

  4.   

    我用过Set all cdaudio door open wait,并没有出现错误呀。
      

  5.   

    枚举光驱设备有何用?mciSendString函数里并没有盘符参数啊。
    Set all cdaudio door open wait 在windows 2000 server 下出现
    '驱动程序无法识别指定的命令参数'错误
      

  6.   

    大概是用mciSendString('Set all cdaudio open wait',nil,0,handle)吧,我试过的,没问题。
      

  7.   

    我又在win98英文版试了一下
    mciSendString('Set all cdaudio open wait',nil,0,Application.Handle );得到如下错误提示SYSTEM259 The command parameter used is not defined in the MCI command set.问题到底在哪里?