Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

CD и нулевая дорожка   Найти похожие ветки 

 
CCCP   (2005-12-04 18:21) [0]

Подскажите, как считать данные с нулевой дорожки CD?


 
Чапаев ©   (2005-12-05 10:00) [1]

У компакт-диска всего одна спиральная дорожка.


 
CCCP   (2005-12-05 19:06) [2]

Мне ужно считать информацию о производителе диска.


 
MTsv DN ©   (2005-12-05 20:01) [3]

Надо читать TOC информацию, а не нулевую дорожку... И из нее по таблицам ATIP получить производителя диска...

С Уважением MTsv DN


 
CCCP   (2005-12-06 16:45) [4]

а как добраться до TOC информации?


 
WondeRu ©   (2005-12-06 17:04) [5]

ищи в MSDN CIM_PhysicalMedia


 
CCCP   (2005-12-06 17:40) [6]

А есть какие либо примеры :)?


 
WondeRu ©   (2005-12-06 17:46) [7]

к сожалению, знаю не больше вашего


 
MTsv DN ©   (2005-12-06 18:32) [8]

Привет...

Вообще, по-хорошему, это надо делать через прямое обращение к приводу, т.е. либо через ASPI Layer, либо через SPTI... Другой вопрос, что отдельно примеров я не видел (правда и не искал :) )

Delphi
http://www.binarymagics.com - там есть платный компонент для записи дисков... Ограничения ТОЛЬКО на запись... Т.е. считывать инфу можно без ограничений (права не нарушите)...
http://sourceforge.net/projects/freeburner - бесплатный компонент, чуть "сырой", но считать думаю можно...
http://maxivamoto.narod.ru/DelphiComponents/diskinfo.htm - здесь набор компонентов для Delphi...
http://www.torry.net - здесь надо найти aspilib.

C&Delphi
"навскидку"...я просто больше в Delphi работаю...
http://www.hpcde.com - здесь набор библиотек
http://www.rocketdivision.com - и здесь набор библиотек

С Уважением MTsv DN


 
MTsv DN ©   (2005-12-06 18:41) [9]

В догонку:

www.cdgraber.narod.ru - здесь маленькая библиотека (~50 кб) в ней тоже есть функция ReadTOC... Это для C++. Думаю самый оптимальный вариант...

А здесь таблица для расшифровки ATIP:
http://www.replikator.ru/context.php?a_ID_CONTEXT=416&a_ID_MENU=10&ID_SITE=1

С Уважением MTsv DN


 
CCCP   (2005-12-06 19:15) [10]

Спасибо, попробую, может что получится :)


 
CCCP   (2005-12-07 14:17) [11]

а как это

typedef struct _CDROM_TOC_ATIP_DATA_BLOCK {
 UCHAR  CdrwReferenceSpeed : 3;
 UCHAR  Reserved3          : 1;
 UCHAR  WritePower         : 3;
 UCHAR  True1              : 1;
 UCHAR  Reserved4       : 6;
 UCHAR  UnrestrictedUse : 1;
 UCHAR  Reserved5       : 1;
 UCHAR  A3Valid   : 1;
 UCHAR  A2Valid   : 1;
 UCHAR  A1Valid   : 1;
 UCHAR  DiscSubType : 3;
 UCHAR  IsCdrw    : 1;
 UCHAR  True2     : 1;
 UCHAR  Reserved7;
 UCHAR  LeadInMsf[3];
 UCHAR  Reserved8;
 UCHAR  LeadOutMsf[3];
 UCHAR  Reserved9;
 UCHAR  A1Values[3];
 UCHAR  Reserved10;
 UCHAR  A2Values[3];
 UCHAR  Reserved11;
 UCHAR  A3Values[3];
 UCHAR  Reserved12;
} CDROM_TOC_ATIP_DATA_BLOCK, *PCDROM_TOC_ATIP_DATA_BLOCK;

на Delphi перевести и получить

UCHAR A1Values[3];
UCHAR A2Values[3];
UCHAR A3Values[3];


 
umbra ©   (2005-12-07 14:42) [12]

UCHAR == byte
UCHAR A1Values[3] == array[1..3] of UCHAR == array[1..3] of byte


 
CCCP   (2005-12-07 14:47) [13]

а как весь struct _CDROM_TOC_ATIP_DATA_BLOCK на Delphi перевести, что бы в нем работало?


 
CCCP   (2005-12-07 17:16) [14]

так?

type
CDROM_TOC_ATIP_DATA_BLOCK =record
 a1 : byte ;
 a2 : byte;
 a3 : byte;
 Reserved7 : UCHAR ;
 LeadInMsf : array[0..2]of UCHAR;
 Reserved8 : UCHAR;
 LeadOutMsf : array[0..2]of UCHAR;
 Reserved9 : UCHAR ;
 A1Values : array[0..2]of UCHAR;
 Reserved10 : UCHAR ;
 A2Values : array[0..2]of UCHAR;
 Reserved11 : UCHAR ;
 A3Values : array[0..2]of UCHAR;
 Reserved12 : UCHAR;
end;


 
MTsv DN ©   (2005-12-07 18:11) [15]

Привет...

Если Delphi используете, то советую с сети поискать Magic CD Burner v.1.21 (BinaryMagic)... НЕ НА САЙТЕ, А ИМЕННО В СЕТИ... Можно найти "интересную" версию и не надо будет заморачиваться с переводом с С++...

С Уважением MTsv DN


 
CCCP   (2005-12-07 18:32) [16]

>MTsv DN
это та, что www.binarymagics.com?


 
OldNaum ©   (2005-12-07 18:41) [17]

Magic CD/DVD Burner была с сурсами в сети в свое время. до сих пор даже где-то валялась, советую. У меня утеряна безвозвратно ) но в свое время почерпнул много интересного.


 
CCCP   (2005-12-07 18:43) [18]

Magic CD Burner v.1.21 находится, но все ссылки на него битые :(


 
CCCP   (2005-12-07 18:59) [19]

нашел у азиатов, сейчас посмотрю


 
MTsv DN ©   (2005-12-07 19:13) [20]

Magic CD/DVD Burner была с сурсами в сети в свое время
Она и сейчас в сети есть... В Astalavista.sk поищи... Если не найдешь, пиши мне у меня есть...

С Уважением MTsv DN


 
CCCP   (2005-12-07 19:22) [21]

>MTsv DN
я нашел и установил. А не подскажите, в каком направлении теперь работать, что смотреть, какие свойства?


 
MTsv DN ©   (2005-12-07 19:56) [22]

Значится так...
Я все делал динамически, поэтому первой строчке не удивляйся:

uses mbDrvLib, mbCDBC, mbASPI;
var
Burner: TBurner;
TOC_ATIP : string;
fTOC100: TTOCPMATIP0100;
begin
Burner := TBurner.Create(nil); // Создаю Burner
Burner.InitializeASPI(True);     // Инициализация ASPI/SPTI
if not Burner.ASPIInitialized then
 begin
  ShowMsg( "Ошибка инициализации SPTI/ASPI...", MB_OK);
  exit;
 end;
if (Burner.Devices <> nil) and (Burner.Devices.Count > 0) then    
 for i := 1 to Burner.Devices.Count do
  begin   // Здесь заносишь найденные устройства в память, например в ComboBox
   Burner.Device := Burner.Devices[i - 1];
   cboxBurners.Insert(cboxDevices.Count, Burner.Devices[i - 1]);
  end;
if cboxBurners.Count = 0 then
 begin
  ShowMsg("CDROM отсутствуют...", MB_OK);
  exit;
 end;

Burner.Device := cboxDevices.Items[cboxDevices.CurIndex]; // Устанавливаешь необходимый

 fillchar(fTOC100, sizeof(fTOC100), 0); // Считывание ATIP информации
 if Burner.ReadTOC(4, @fTOC100, Sizeof(fTOC100), 0, True) then
  begin
   if fTOC100.StFrame < 10 then
    TOC_ATIP := intTostr(fTOC100.StMin) + ":" + intTostr(fTOC100.StSec) + ":0" + intTostr(fTOC100.StFrame)
     else TOC_ATIP := intTostr(fTOC100.StMin) + ":" + intTostr(fTOC100.StSec) + ":" + intTostr(fTOC100.StFrame);
  end;

ShowMsg(TOC_ATIP, MB_OK);


Вроде так...

С Уважением MTsv DN


 
MTsv DN ©   (2005-12-07 20:03) [23]

А потом TOC_ATIP, вида "ХХ:YY:ZZ", смотришь по таблице и получаешь производителя CD.

С Уважением MTsv DN


 
MTsv DN ©   (2005-12-07 20:04) [24]

Ах, да... Забыл... Переведи: "ХХ:YY:ZZ" => "ХХ:YY:Z0".


 
CCCP   (2005-12-07 21:58) [25]

Спасибо за помощь, все отлично работает!!!

А такой вопрос, что еще можно считать с помощью этого компонента с CD,
я имею в виду те данные, которые не копируются?



Страницы: 1 вся ветка

Текущий архив: 2006.02.26;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.035 c
4-1134030477
SergeyRocker
2005-12-08 11:27
2006.02.26
Изменение настроек драйверов принтера


2-1139833368
Делфёст
2006-02-13 15:22
2006.02.26
Шифровка поля


2-1139653910
Proxytel
2006-02-11 13:31
2006.02.26
Увеличить время показа Hint ?


2-1139530362
kimona
2006-02-10 03:12
2006.02.26
массив


2-1139758486
SetWindowPos
2006-02-12 18:34
2006.02.26
Как форму сделать не поверх всех?