Как програмно открыть\закрыть поддон CD-ROM? Группа ссылок: MCI Вариант 1: Функция OpenCD открывает лоток CDROM. Параметр Drive - буква диска лоток которого необходимо открыть. Функция CloseCD закрывает лоток CDROM. Параметр Drive - буква диска лоток которого необходимо закрыть. ..... uses ... MMSystem; function OpenCD(Drive : Char) : Boolean; Var Err : MciError; OpenParm: TMCI_Open_Parms; Flags : DWord; S : String; DeviceID : Word; begin Result:=false; S:=Drive+':'; Flags:=mci_Open_Type or mci_Open_Element; // См. mci_Open With OpenParm do begin dwCallback := 0; lpstrDeviceType := 'CDAudio'; lpstrElementName := PChar(S); end; Err := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm)); IF Err<>0 Then exit; DeviceID:=OpenParm.wDeviceID; try Err:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0); IF Err=0 Then exit; Result:=True; finally mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm)); end; end; function CloseCD(Drive : Char) : Boolean; Var Err : MciError; OpenParm: TMCI_Open_Parms; Flags : DWord; S : String; DeviceID : Word; begin Result:=false; S:=Drive+':'; Flags:=mci_Open_Type or mci_Open_Element; With OpenParm do begin dwCallback := 0; lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S); end; Err := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm)); IF Err<>0 Then exit; DeviceID:=OpenParm.wDeviceID; try Err:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0); IF Err=0 Then exit; Result:=True; finally mciSendCommand(DeviceID, MCI_CLOSE, Flags, Longint(@OpenParm)); end; end; Вариант 2: Данные функции работаю только с первым устройством в системе: Открыть дверцу: mciSendString( 'Set cdaudio door open wait', nil, 0, application.handle); закрыть дверцу: mciSendString( 'Set cdaudio door closed wait', nil, 0, application.handle); Дерзай
Ответить
|