Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.214 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
$2B or not $2B
|
|
Zitat
|