Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как закрыть доступ к cd-rom?

330
18 марта 2007 года
kastron
215 / / 17.09.2006
Уважаемые участники форума.Подскажите пожалуйста,как закрыть доступ к cd-rom.То есть чтобы когда программа работала cd-rom не открывался.
26K
18 марта 2007 года
Gh0stik
10 / / 06.03.2007
Вот процедура которая это вытворяет...
Параметры:
Locked - блокирован или нет (true/false);
DriveLetter - соответственно буква привода плюс двоеточие (например Z:).

Код:
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;
:cool:
330
21 марта 2007 года
kastron
215 / / 17.09.2006
Не работает,к сожалению(но ошибок в коде нет)просто не хочет закрывать доступ к диску...
257
21 марта 2007 года
kosfiz
1.6K / / 18.09.2005
kastron тебе нужно запретить доступ к содержимому cd или залочить лоток привода(т.е. чтобы он не открывался)? если залочить, то код Gh0stik'а работает.
330
25 марта 2007 года
kastron
215 / / 17.09.2006
Прошу прощения,я ошибся просто в одной строчке.Все работает.Всем респект:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог