Thema: Delphi CD/DVD Laufwerk öffnen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

Re: CD/DVD Laufwerk öffnen

  Alt 22. Jun 2009, 21: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat