PDA

Просмотр полной версии : Заблочить dvd-cd ROM


dosleft
08.04.2010, 14:13
Кто зает как это сделать? желательно еще и usb, язык делфи.

JnK
08.04.2010, 14:19
Заблочить dvd-cd ROM

Функция принимает два параметра. ADriveLetter - буква диска, ALock - блокировать (true - блокировать, false - разблокировать)

function LockMedia(ADriveLetter: Char; ALock: Boolean): Boolean;
var LWStatus: Hwnd;
LTemp: Cardinal;
LPMR32: Boolean;
Const IOCTL_STORAGE_MEDIA_REMOVAL = $2D4804;
begin
LwStatus := CreateFile(PChar('\\.\' + ADriveLetter + ':'), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
LPMR32 := ALock;
if LwStatus <> INVALID_HANDLE_VALUE then
begin
result := DeviceIoControl(LwStatus, IOCTL_STORAGE_MEDIA_REMOVAL, @LPMR32, sizeof(LPMR32), nil, 0, LTemp, nil);
CloseHandle(LwStatus);
end else result := false;
end;


Пример использования:
LockMedia('d', true); // заблокировать диск D:
ShowMessage('CD-ROM заблокирован. Лоток не выезжает.');
LockMedia('d', false); // разблокировать диск D:
ShowMessage('CD-ROM разблокирован.');

Или блокировать в плане, он не видется вообще?