(Gast)
n/a Beiträge
|
Laufwerksschublade ein- oder ausfahren
18. Jun 2006, 14:02
Mit diesen beiden Funktionen kann man die Laufwerksschublade eines beliebigen CD/DVD - Laufwerks ein- oder ausfahren. Die Ursprungsfunktion zum Einfahren der Schublade kommt von skunker aus diesem Thread
Delphi-Quellcode:
const
IOCTL_STORAGE_EJECT_MEDIA = $2D4808;
IOCTL_STORAGE_LOAD_MEDIA = $2D480C;
//Fährt die Schublade ein
function LoadMedia(DriveLetter: String): Boolean;
var
hr:THandle;
buffer: Cardinal;
begin
hr := CreateFile(PChar('\\.\'+DriveLetter+':'), GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE, NIL, OPEN_EXISTING, 0, 0);
if hr <> INVALID_HANDLE_VALUE then
if DeviceIOControl(hr, IOCTL_STORAGE_LOAD_MEDIA, NIL, 0, NIL, 0, buffer, NIL) then
result := true
else
result := false;
CloseHandle(hr);
end;
//Fährt die Schublade aus
function EjectMedia(DriveLetter: String): Boolean;
var
hr:THandle;
buffer: Cardinal;
begin
hr := CreateFile(PChar('\\.\'+DriveLetter+':'), GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE, NIL, OPEN_EXISTING, 0, 0);
if hr <> INVALID_HANDLE_VALUE then
if DeviceIOControl(hr, IOCTL_STORAGE_EJECT_MEDIA, NIL, 0, NIL, 0, buffer, NIL) then
result := true
else
result := false;
CloseHandle(hr);
end;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
LoadMedia('D');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
EjectMedia('D');
end;
//Edit: Windows Version hinzugefügt
[edit=Chakotay1308]Code-Formatierung. Mfg, Chakotay1308[/edit]
|
|
Zitat
|