Заблочить dvd-cd ROM

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by dosleft, 8 Apr 2010.

  1. dosleft

    dosleft New Member

    Joined:
    7 Apr 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Кто зает как это сделать? желательно еще и usb, язык делфи.
     
  2. JnK

    JnK Elder - Старейшина

    Joined:
    30 Mar 2007
    Messages:
    125
    Likes Received:
    21
    Reputations:
    0
    Функция принимает два параметра. ADriveLetter - буква диска, ALock - блокировать (true - блокировать, false - разблокировать)

    PHP:
    function LockMedia(ADriveLetterCharALockBoolean): Boolean
    var 
    LWStatusHwnd
        
    LTempCardinal
        
    LPMR32Boolean
    Const 
    IOCTL_STORAGE_MEDIA_REMOVAL = $2D4804
    begin 
      LwStatus 
    := CreateFile(PChar('\\.\' + ADriveLetter + ':'), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0); 
      LPMR32 := ALock; 
      if LwStatus <> INVALID_HANDLE_VALUE then 
      begin 
        result := DeviceIoControl(LwStatus, IOCTL_STORAGE_MEDIA_REMOVAL, @LPMR32, sizeof(LPMR32), nil, 0, LTemp, nil); 
        CloseHandle(LwStatus); 
      end else result := false; 
    end;
    Пример использования:
    PHP:
    LockMedia('d'true);  // заблокировать диск D:
    ShowMessage('CD-ROM заблокирован. Лоток не выезжает.');
    LockMedia('d'false); // разблокировать диск D:
    ShowMessage('CD-ROM разблокирован.');
    Или блокировать в плане, он не видется вообще?