Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.036 c
2-1139316559
san6
2006-02-07 15:49
2006.02.26
существуют две таблицы


8-1126587994
dm37
2005-09-13 09:06
2006.02.26
OpenGL - бегущая строка


2-1139346163
serko
2006-02-08 00:02
2006.02.26
Image


15-1138691720
ANB
2006-01-31 10:15
2006.02.26
Трехслойка vs Двухслойка


15-1139235705
default
2006-02-06 17:21
2006.02.26
Есть смысл накладывать XP на XP?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский