Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
Delphi 12 Athens
|
Re: CD/DVD Laufwerk öffnen
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
Ein Therapeut entspricht 1024 Gigapeut.
|
|
Zitat
|