Thema: Delphi CD/DVD Laufwerk öffnen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.214 Beiträge
 
Delphi 12 Athens
 
#17

Re: CD/DVD Laufwerk öffnen

  Alt 22. Jun 2009, 22:47
wozu am Anfang Result zuweisen ... sowas braucht doch eh keiner
Delphi-Quellcode:
function LoadMedia(const Drive: String): Boolean;
var H: THandle;
  R: Cardinal;
begin
  H := CreateFile(PChar('\\.\' + Drive), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, NIL, OPEN_EXISTING, 0, 0);
  Result := (H <> INVALID_HANDLE_VALUE) and
    DeviceIOControl(H, IOCTL_STORAGE_LOAD_MEDIA, NIL, 0, NIL, 0, R, NIL);
  CloseHandle(H);
end;


// z.B.:
LoadMedia('D:');
oder gleich alles in eines
Delphi-Quellcode:
function LoadMedia(const Drive: String; Eject: Boolean = False): Boolean;
const Command: array[Boolean] of Cardinal = (IOCTL_STORAGE_LOAD_MEDIA, IOCTL_STORAGE_EJECT_MEDIA);
var H: THandle;
  R: Cardinal;
begin
  H := CreateFile(PChar('\\.\' + Drive), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, NIL, OPEN_EXISTING, 0, 0);
  Result := (H <> INVALID_HANDLE_VALUE) and
    DeviceIOControl(H, Command[Eject], NIL, 0, NIL, 0, W, NIL);
  CloseHandle(H);
end;


// z.B.:
LoadMedia('D:', True); // Tür auf
LoadMedia('D:'); // Tür zu
PS: wenn schon ein String als Parameter, dann würde ich gleich die Laufwerkskennung so machen, wie sie jeder kennt,

ansonsten könnte man auch Char statt String nehmen
$2B or not $2B
  Mit Zitat antworten Zitat