mciSendString函数可以打开或关闭光驱,只需简单的调用:
mciSendString ("set cdaudio door open","",0,0);//打开光驱
mciSendString ("set cdaudio door closed","",0,0);//关闭光驱
但是在调用函数之前怎样知道光驱是打开的还是关闭的?

解决方案 »

  1.   

    难道不能换个思路吗?
    用一个变量,第一次点击就赋予open状态,再点一次就是close,再点就是open,思路就这样
      

  2.   

    TO:coley(唉~眼镜又厚了~)
    1、变量的初始值是多少呢(你怎么知道启动程序时的光驱状态)?
    2、如果不是利用程序开/关的光驱怎么办呢?
      

  3.   

    http://www.unix123.com/oiuoiu/xukhmcnpcr/514369.htm
      

  4.   

    调用windows API 函数 判断光驱状态
      

  5.   

    对,调用windows API  函数就可以了啊
      

  6.   

    To:canserly(嘿,朋友) :变量的状态应该和光驱的状态一样,这一点观点应该一致吧!当程序运行时如果光驱是关的则变量应该初始为关;如果光驱是开的变量应该初始为开;问题不就出来了吗---我怎么才知道光驱是开还是关?关键是光驱不是我一个程序控制,还可以手工开关,我觉得用变量控制是行不通的!
    To:flynetcn(我心飞翔),conggang(快乐小鸟) :有函数可以判断光驱状态吗?是什么函数?请指教!
      

  7.   

    http://topic.csdn.net/t/20040401/16/2913921.html或是找找关键字:mcisendstring
      

  8.   

    如果我没记错的话,即使是调用API也没办法获得当前光驱的状态。可以说,整个windows系统在刚刚进入系统的时候,它都不知道光驱是开这还是关着。只有光驱的开/关动作发生时,系统才会收到消息。
    我能想到的唯一的办法就是抢行的开或者关它一次,此后就方便多了。
    要么就是认为刚进入系统的时候光驱是关的(应该有90%以上的正确率吧?),然后用后台程序实时监视光驱动作。