Форум: "WinAPI";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизDelphi: Чтения бит с CD диска Найти похожие ветки
← →
Artin (2004-10-08 20:49) [0]Здравствуйте.
Мне надо прочитать с диска(CD) первый бит затем бит из серединки и последний бит.
Причём мне надо замерить время между считыванием.
Фактически замерить время реакции головки CD-ROMа. По этому (время реакции головки) я нечего не нашел. Конечно, можно это сделать примерно так
var
File : file_f;
begin
assign(File,path_file);
reset(File,1);
// в цикл if EOF(File)
BlockRead(File,item,sizeof(item));
//Замеряем Timerом и высчитываем
//Конец цикла
end.
Но мне не нравиться, что надо явно указывать имя фиала.
Как читать биты прямо с CD?
← →
Cobalt © (2004-10-08 21:45) [1]попробуй открыть файл
\Device\CdRom1
← →
tesseract (2004-10-11 09:41) [2]re: Cobalt
попробуй открыть файл
\Device\CdRom1
Да и посмотри описание CreateFile, REadFile, SetFilePointer и тд...
А можешь и DEVICE_IO_CONTROL
← →
Artin (2004-10-11 21:22) [3]Cobalt,tesseract
\Device\CdRom1
Пробовал. Пишет не могу открыть фаил.
← →
Fay © (2004-10-11 21:44) [4]Попробуй что-нибудь типа этого.
const
BUF_SZ = 4096;
var
hd, hf, nr, nw : DWORD;
b : packed array[0..BUF_SZ - 1] of Byte;
label
Label_Next;
begin
hd := CreateFile("\\.\A:", GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if hd = INVALID_HANDLE_VALUE then RaiseLastOSError;
hf := INVALID_HANDLE_VALUE;
try
hf := CreateFile("c:\Floppy.txt", GENERIC_WRITE, FILE_SHARE_READ, nil, OPEN_ALWAYS, 0, 0);
if hf = INVALID_HANDLE_VALUE then RaiseLastOSError;
goto Label_Next;
repeat
WriteFile(hf, b, nr, nw, nil);
Label_Next :
ReadFile(hd, b, BUF_SZ, nr, nil);
until nr = 0;
finally
CloseHandle(hd);
if hf <> INVALID_HANDLE_VALUE then CloseHandle(hf);
end;
← →
tesseract (2004-10-12 12:27) [5]
hd := CreateFile("\\.\A:", GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
Только для NT+ для 9x надо открывать vxd
hd := CreateFile("\\.\vwin32", GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
← →
Fay © (2004-10-12 12:51) [6]2 tesseract (12.10.04 12:27) [5]
Это откуда? Не могу найти. В PSDK естьWindows 95/98/Me: This technique does not work for opening a logical drive. Specifying a string in this form causes CreateFile to return an error.
На MSDN не нашёл и этого. Странно.
← →
SammIk © (2004-10-12 18:22) [7]Во-первых, прочитать биты с диска нельзя!!(да ивообще их нельзя прочитать нигде).
Во-вторых нужно сходить на васм да посмотреть статьи Касперского.
И подождать его книги. Можно сходить на его саит и скачать пару глав из нее.
← →
Artin (2004-10-12 21:52) [8]Fay ©
Большое спасибо это то что нужно!
tesseract
Моя товю не понимает :(
Обьесни тольком как надо писать для 98. Читал спарвку в дельфи сходу нечего не понятно.
← →
tesseract (2004-10-13 11:05) [9]Пояснение :
в NT требуется открыть ус-во, его и открываем по полному имени- "\\.\A:", так например и COM , больше девятого открыть "\\.\COM125"
в 9x надо обращаться к драйверу - "\\.\vwin32" тк обратились к драйверу, то на ReadFile можно забить.
DEviceIOControl - пишем как в Asm регистры и команды и посылаем драйверу (купи себе "программирование в Delphi 7" от BHV - там есть пример чтения с дискеты)
to Sammik ^
Во-первых, прочитать биты с диска нельзя!!(да ивообще их нельзя прочитать нигде).
Точно биты нельзя! а байты можно! статьи Касперского - такжи хороши как и его антивирус - никакой пользы.
Если прочитать/записать нельзя, как же винда к диску обращается???????
← →
Jel © (2004-10-13 15:05) [10]
> статьи Касперского - такжи хороши как и его антивирус -
> никакой пользы.
Неудивительно. Статьи пишет Крис Касперски, а антивирус Евгений Касперский :)
← →
Artin (2004-10-14 21:29) [11]tesseract
Купить книгу конечно надо, я уже прочитал одну книгу но она из раздела для чайников. А на нормальную книжку денег пока жалка(я студент, это по работе мне, очень надо а денег на книгу на работе наверно не выделят (гос учреждение :()). Если не трудно отскань и скинь мылом. mailto: atomm@mail.ru
Я, конечно, постараюсь разобраться.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.866 c