procedure TForm1.CD_Lock(Locked: Boolean; DriveLetter: string);
const
IOCTL_STORAGE_MEDIA_REMOVAL = $002D4804;
var
hDrive: THandle;
Returned: DWORD;
DisableEject: boolean;
begin
hDrive := CreateFile(PChar('\\.\' + DriveLetter), GENERIC_READ,
FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if GetLastError <> 0 then
MessageDlg('Error:' + IntToStr(GetLastError), mtError, [mbOK], 0);
try
DisableEject := Locked;
if not DeviceIoControl(hDrive,
IOCTL_STORAGE_MEDIA_REMOVAL, // PREVENT_MEDIA_REMOVAL,
@DisableEject, SizeOf(DisableEject), nil, 0, Returned, nil)
then MessageDlg('Ошибка:' + IntToStr(GetLastError), mtError, [mbOK], 0)
finally
CloseHandle(hDrive)
end;
end;
как закрыть доступ к cd-rom?
Уважаемые участники форума.Подскажите пожалуйста,как закрыть доступ к cd-rom.То есть чтобы когда программа работала cd-rom не открывался.
Параметры:
Locked - блокирован или нет (true/false);
DriveLetter - соответственно буква привода плюс двоеточие (например Z:).
Код:
Не работает,к сожалению(но ошибок в коде нет)просто не хочет закрывать доступ к диску...
kastron тебе нужно запретить доступ к содержимому cd или залочить лоток привода(т.е. чтобы он не открывался)? если залочить, то код Gh0stik'а работает.
Прошу прощения,я ошибся просто в одной строчке.Все работает.Всем респект:)