Online
Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
Delphi 12 Athens
|
Re: CD/DVD Laufwerk öffnen
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
|
|
Zitat
|