请问怎么才能获取光驱的状态(打开的还是关闭的)

解决方案 »

  1.   

    给你一段代码,用来监测光驱的状态:
    function CDROMReady(DRV:char):boolean; 
    vari:dword;buf:array[0..MAX_PATH] of char;pd:DWORD;beginpd:=0;GetVolumeInformation(DRV+':\',buf,i,@pd,i,i,buf,i);result:=pd<>0;end; 
      

  2.   

    下面是一段Delphi程序,演示了如何控制光驱。 
        program cdinout; 
        uses mmSystem; 
         
        var 
        MCIO : TMCI_Open_Parms; 
        MCIS : TMCI_Status_Parms; 
         
        begin 
         
        MCIO.lpstrDeviceType := PChar(MCI_DEVTYPE_CD_AUDIO); 
        if mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE or MCI_OPEN_TYPE_ID or 
         MCI_OPEN_SHAREABLE, LongInt(@MCIO) )= 0 then 
         begin 
         MCIS.dwItem := MCI_STATUS_READY; 
         mciSendCommand(MCIO.wDeviceID, MCI_STATUS, MCI_STATUS_ITEM 
         or MCI_WAIT, LongInt(@MCIS)); 
         if MCIS.dwReturn<> 0 then 
         mciSendCommand(MCIO.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0) 
         else 
         mciSendCommand(MCIO.wDeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0); 
         mciSendCommand(MCIO.wDeviceID, MCI_CLOSE, MCI_WAIT, 0); 
         end; 
        end.