Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CD_ROM [D7, WinXP]


Borland ©   (2005-07-31 17:06:00) 

Как программно заблокировать все CD-ROM'ы?


Borland   (2005-08-03 15:18:00) [1]

Если честно, то нет. Т.к. занялся программирорванием не так уж давно. Если не трудно - покажите.


КодеКорешь   (2005-08-01 14:09:00) [2]

function BlocCD(DisableEject: boolean; ADriveLetter : PChar): Boolean;
var
hCDDevice : THandle;
lpBytesReturned: DWORD;
const
 IOCTL_STORAGE_MEDIA_REMOVAL = $002D4804;
begin
If GetDriveType(ADriveLetter) = DRIVE_CDROM then
  begin
    hCDDevice := CreateFile(PChar('\\.\'+ADriveLetter),
                                                  GENERIC_READ,
                                                   FILE_SHARE_READ or FILE_SHARE_WRITE,
                                                   nil,
                                                   OPEN_EXISTING,
                                                   FILE_ATTRIBUTE_NORMAL,
                                                  0);
    if hCDDevice <> INVALID_HANDLE_VALUE then
       begin
          DeviceIoControl(hCDDevice, IOCTL_STORAGE_MEDIA_REMOVAL, @DisableEject, sizeof(DisableEject),  nil, 0, lpBytesReturned, nil);
          CloseHandle(hCDDevice);
          Result:=True;
       end
    else
       begin
          CloseHandle(hCDDevice);
          Result:=False;
       end;
 end

else  Result:=False;
end;

DisableEject если True то блокируем иначе разблокируем
ADriveLetter тут буква диска
Как перебрать все CD-ROM в цикле думаю знаешь....


Наверх

Титульная страница Поиск, карта сайта Написать письмо