![](/logo_grey.gif)
Последние записи
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
- Lazarus, проверка существования строки таблице
- BASM и record, обращение к полям записи
- Web PHP Framework Symfony
![](http://programmersclub.ru/slurm3.jpg)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
![](http://programmersclub.ru/katajpg.jpg)
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
15th
Мар
Блокировка CD
Posted by maloy under Delphi, Архив
Vol666
Как в Дельфи можно более или менее просто заблокировать CD\DVD\BR приводы чтооб их створки не открывались, как в неро при записи.
Neeter
Блокировка CD-ROM:
procedure TMainForm.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_Lock(True) — блокирует CD-ROM
CD_Lock(False) — разблокирует CD-ROM
Все CD-ROM’ы можно заблокировать так:
procedure TMainForm.LockCDROMs;
var
w: dword;
Root: string;
i: byte;
begin
w := GetLogicalDrives;
Root := '#:\';
for i := 0 to 25 do
begin
Root[1] := Char(Ord('A') + i);
if (W and (1 shl i)) > 0 then
if GetDriveType(PChar(Root)) = DRIVE_CDROM then
begin
DriveLetter := Copy(Root, 1, Length(Root) - 1);
CD_Lock(True, DriveLetter)
end
end;
end;
тема на форуме от 2009 года
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
![пеллетные котлы](http://programmersclub.ru/respective.jpg)
пеллетные котлы
![пеллетный котел](http://programmersclub.ru/emtas.jpg)
Пеллетный котел Emtas
![форум программистов](http://programmersclub.ru/banf336х280.gif)
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)