我的機器有cdrom,combo,dvdrom,使用mmsystem函數可以分別控制多個光驅的倉門進出嗎?如果不行,要使用那個函數呢?能不能提供這樣的例子或者教材,如果好用,可以再給高分!或者提供這樣的控件也行!謝謝!
<<我不想使用網上的共享軟件,想自己寫,這樣才有樂趣!>>

解决方案 »

  1.   

    mciSendCommand 的第一个参数好象就是设备的ID吧?
      

  2.   

    下面是MciSendCommand函数的参数说明..你参考一下吧.
    ?IDDevice 
    Device identifier of the MCI device that is to receive the command message. This parameter is not used with the MCI_OPEN command message. ?uMsg 
    Command message. For information about command messages, see Command Messages. ?fdwCommand 
    Flags for the command message. ?dwParam 
    Address of a structure that contains parameters for the command message.
      

  3.   

    告诉我你的邮箱,我把我的代码发送给你.C++Builder代码.
      

  4.   

    楼上的..如果可以能不能也给俺一份??
    俺正在学习CB尼[email protected]
      

  5.   

    还是不必了把,代码如下:
    #include <MMsystem.h>        AnsiString OpenString=AnsiString("open G: type CDAudio alias finch wait";
    //其中G:表示你的光驱所在的盘符
            mciSendString(OpenString.c_str(),NULL, NULL, NULL);留下Mail的我照发代码.
      

  6.   

    有delphi的參考嗎?我剛學delphi的.謝了!
      

  7.   

    如果有Delphi的 我也学习一下 [email protected]
      

  8.   

    procedure CDRomOpen(bOpenDrive: Boolean; cDrive: Char);
    var
      o: MCI_OPEN_PARMS;
      status: MCI_STATUS_PARMS;
      flags: DWord;
      szDriveName: array[0..3] of Char;
    begin
      szDriveName := '?:';
      ZeroMemory(@o, SizeOf(MCI_OPEN_PARMS));
      szDriveName[0] := cDrive;  o.lpstrDeviceType := PChar(MCI_DEVTYPE_CD_AUDIO);
      o.lpstrElementName := szDriveName;
      flags := MCI_OPEN_TYPE or MCI_OPEN_TYPE_ID or MCI_OPEN_ELEMENT or MCI_OPEN_SHAREABLE;
      if mciSendCommand(0, MCI_OPEN, flags, Cardinal(@o)) = 0 then
      begin
        status.dwItem := MCI_STATUS_READY;    if bOpenDrive then
          mciSendCommand(o.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0)
        else
          mciSendCommand(o.wDeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);    mciSendCommand(o.wDeviceID, MCI_CLOSE, MCI_WAIT, 0);
      end;
    end;
      

  9.   

    uses MMsystem
            String OpenString='open G: type CDAudio alias finch wait';
    //其中G:表示你的光驱所在的盘符
            mciSendString(Pchar(OpenString),NULL, NULL, NULL);
    你看这就是转换过的Delphi代码
      

  10.   

    uses MMsystem
    var 
            OpenString: String = 'open G: type CDAudio alias finch wait';
    //其中G:表示你的光驱所在的盘符
            mciSendString(Pchar(OpenString),NULL, NULL, NULL);
    你看这就是转换过的Delphi代码