Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2009, 13:05   #1
JnK
 
Регистрация: 04.05.2007
Сообщений: 3
По умолчанию Чтение VTOC под ОС VISTA

Кто может подсказать как прочитать таблицу VTOC с DVD/CD диска под VISTA?
Пример ниже работает под XP, 2003 (на других не проверял)
Код:
type
  TVTOC=packed record
    ID                : packed array [0..7] of Byte;
    SysName           : packed array [0..31] of Char;
    VolName           : packed array [0..31] of Char;
    Unknown           : packed array [0..117] of Byte;
    VolsName          : packed array [0..127] of Char;
    Publisher         : packed array [0..127] of Char;
    Prepared          : packed array [0..127] of Char;
    Application       : packed array [0..127] of Char;
    CopyrightFile     : packed array [0..36] of Char;
    AbstractFile      : packed array [0..36] of Char;
    BibliographicFile : packed array [0..36] of Char;
    Times :packed record
      Creation        : packed array [0..16] of Char;
      Modification    : packed array [0..16] of Char;
      Expiration      : packed array [0..16] of Char;
      Effective       : packed array [0..16] of Char;
    end;
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  hDevice : THandle;
  DevName : string;
  Sector : integer;
  rb : cardinal;
  DataDisk : TVTOC;
begin
  DevName :='\\.\X:';
  Sector := $8000;
  hDevice := CreateFile(pChar(Devname), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  if hDevice <> INVALID_HANDLE_VALUE then
  begin
    SetFilePointer(hDevice, Sector, nil, FILE_BEGIN);
    if ReadFile(hDevice, DataDisk, sizeof(DataDisk), rb, nil) then
    begin
      ShowMessage(DataDisk.Application);
    end;
    CloseHandle(hDevice);
  end;
end;
JnK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi под windows Vista Pitbull Софт 8 21.06.2008 16:20
Оформление под Win Vista Yar Помощь студентам 1 28.10.2007 08:38