----------------------------------------------------------------------- "Delphi X-Files" " "Открытие/Закрытие указанного привода CD-ROM" ----------------------------------------------------------------------- Тема довольно интересная. Дело в том, на различных сайтах встречаются примеры, которые показывают, как открыть или закрыть только CD-ROM, который установлен по умолчанию. Предлагаемый же ниже пример позволяет открыть и закрыть указанный привод. Uses .., MMSystem; function OpenCD(Drive : Char) : Boolean; Var Res : 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; {Эта строчка необходима для правильной работы функции IntellectCD} Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm)); IF Res <> 0 Then Exit; DeviceID := OpenParm.wDeviceID; try Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0); IF Res = 0 Then Exit; Result := True; finally mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm)); end; end; function CloseCD(Drive : Char) : Boolean; Var Res : 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; Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm)); IF Res <> 0 Then Exit; DeviceID := OpenParm.wDeviceID; try Res := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0); IF Res = 0 Then Result := True; finally mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm)); end; end; -----------------------------------------------------------------------