Форум: "Система";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
ВнизCD-ROM Найти похожие ветки
← →
Ванька Сусанин (2003-08-21 16:07) [0]Здраствуйте. Как закрыть доступ к CD-ROM? Можно чтобы он был виден в проводнике, но не работал, или же типа галочки "Отключён в данной конфигурации" в свойствах CD-ROM. Заранее благодарен.
← →
diMAN (2003-08-22 17:47) [1]Можно заблокировать CD-ROM.
Вот небольшой кусочек кода, правда плохо оформлен, но даёт представление куда копать:
if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
hDevice := CreateFile( "\\.\vwin32", 0, 0, nil, 0, 0, 0 )
else if Win32Platform = VER_PLATFORM_WIN32_NT then
hDevice := CreateFile( PChar("\\.\" + Drive + ":"), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 )
else MessageBox( Handle, "Operating System not supported!", "CDLock", MB_OK or MB_ICONERROR );
if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
begin
FillChar(DR, SizeOf(DR), #0);
PB.bOperation := 0; // 0 - Lock
FillChar(DR, SizeOf(DR), #0);
DR.reg_EAX := $440D; // Generic IOCTL
DR.reg_EBX := Ord(UpCase(Drive)) - Ord("A") + 1; // 0 - current, 1 - A:, 2 - B: ...
DR.reg_ECX := MAKEWORD($48, $08); // Категория устройства и код операции
DR.reg_EDX := DWORD(@PB); // Address of PARAMBLOCK
Result := DeviceIoControl( hDevice, VWIN32_DIOC_DOS_IOCTL, @DR, SizeOf(DR), @DR, SizeOf(DR), RB, nil );
Result := Result and ((DR.reg_Flags and CARRY_FLAG) = 0);
end
else if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
PMR.PreventMediaRemoval := True;
Result := DeviceIOControl( hDevice, IOCTL_STORAGE_MEDIA_REMOVAL, @PMR, SizeOf(PMR), nil, 0, RB, nil );
end;
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.019 c