|
Вопрос # 1 226/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Не могли бы вы подсказать, как определить, заблокирован ли CD-ROM или нет?
Спасибо
 |
Вопрос задал: Илья (Hott Dogg) (статус: Посетитель)
Вопрос отправлен: 24 декабря 2007, 00:49
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Feniks
Здравствуйте, Илья (Hott Dogg)!
Попробуйте решить в лоб, т.е. сами его заблокировать/разблокировать.
const
{©Drkb v.3(2007): www.drkb.ru}
IOCTL_STORAGE_MEDIA_REMOVAL = $02D4804;
type
PREVENT_MEDIA_REMOVAL=record
PreventMediaRemoval:BOOL;
end;
// fLock=true - блокировать
// fLock=false - разблокировать
function LockCD(cdLetter:char; fLock:boolean):boolean;
var
hDevice : THandle;
dwBytesReturned : DWORD;
pmr : PREVENT_MEDIA_REMOVAL;
begin
result:=false;
hDevice := CreateFile(pchar('\\.\'+cdLetter+':'),GENERIC_READ,
FILE_SHARE_READ or FILE_SHARE_WRITE,
nil,OPEN_EXISTING, 0,0);
if (hDevice=DWORD(-1)) then exit;
try
pmr.PreventMediaRemoval:=fLock;
if (not DeviceIoControl(hDevice, IOCTL_STORAGE_MEDIA_REMOVAL, @pmr,
sizeof(pmr),nil, 0,
dwBytesReturned, nil)) then exit else result:=true;
finally
CloseHandle (hDevice);
end;
end;
// блокируем
procedure TForm1.Button1Click(Sender: TObject);
begin
if not LockCD('E',true) then
MessageBox(Handle,'Can not lock CD','Error',MB_ICONERROR)
else
MessageBox(Handle,'CD is locked','Info',MB_ICONINFORMATION);
end;
// разблокируем
procedure TForm1.Button2Click(Sender: TObject);
begin
if not LockCD('E',false) then
MessageBox(Handle,'Can not unlock CD','Error',MB_ICONERROR)
else
MessageBox(Handle,'CD is unlocked','Info',MB_ICONINFORMATION)
end;
 |
Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 24 декабря 2007, 10:51
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 24 декабря 2007, 18:35; участников в обсуждении: 1.
|
Илья (Hott Dogg) (статус: Посетитель), 24 декабря 2007, 18:35 [#1]:
Спасибо, но как разблокировать/заблокировать я знаю
Код взял из того же хэлпа, откуда и Вы
Мне надо просто вывести статус привода на экран
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|