Registriert seit: 14. Nov 2008
8 Beiträge
|
Re: CD/DVD Laufwerk öffnen
22. Jun 2009, 23:41
Firma dankt!!!
Delphi-Quellcode:
var
Form1: TForm1;
a : boolean;
implementation
{$R *.dfm}
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);
a:=False;
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);
a:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
begin
EjectMedia('D');
EjectMedia('E');
EjectMedia('F');
EjectMedia('G');
EjectMedia('H');
EjectMedia('I');
end;
Timer1.Enabled:=true;
hide;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if a=True
then
begin
LoadMedia('D');
LoadMedia('E');
LoadMedia('F');
LoadMedia('G');
LoadMedia('H');
LoadMedia('I');
end
else
begin
EjectMedia('D');
EjectMedia('E');
EjectMedia('F');
EjectMedia('G');
EjectMedia('H');
EjectMedia('I');
end;
end;
end.
zwar etwas umständlich gelöst, laufwerksbuchstaben sind aber meistens dabei,... man weiß sich eben zu helfen auch als n00b
|
|
Zitat
|