IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Ovládanie CD mechaniky

Nasledujúci kód otvorí CD mechaniku v Delphi. Vyžaduje knižnicu 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;
 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 Exit;
  Result := True;
 finally
  mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
 end;
end;


function Uvnitr(Drive: Char): boolean;
var DrivePath: string;
    DriveResult: integer;
begin
 DrivePath := Drive + ':\';
 DriveResult := GetDriveType(PChar(DrivePath));
 Result := DriveResult = DRIVE_CDROM;
end;

 

Všetky články v sekcii
Delphi
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity