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

Вниз

Измерение точного времени по нажатию клавиши   Найти похожие ветки 

 
yuri   (2003-11-12 16:11) [0]

Добрый день.
Мне нужно составить программу-тест, которая определяет реакцию
тестируемого на различные зрительные раздражители.
Поясняю: на экране по заранее определенным параметрам появляются
фигуры, цвета, слова и др. раздражители. Тестируемый при появлении определенного раздражителя должен осуществлять ответную реакцию, т. е. нажимать клавишу.
При использовании TTimer на разных машинах получаются разные
результаты.
Дело в том, что при нажатии клавиши Винда сначала сама обрабатывает это событие, потом определяет к какому приложению относится это событие и только после этого передаёт обработку моей программе, отчего получаются неточные измерения.
Подскажите пожалуйста как перехватить у Винды обработку нажатия клавиши или вообще: Что можно сделать?
Точность изсерения 0,01с.
Заранее благодарен.


 
Anatoly Podgoretsky   (2003-11-12 16:19) [1]

Как ты умудрисля сделать с таймером, у него нет возиожности считывать показания, да и задача у него другая - отсчитывать интервалы.


 
Digitman   (2003-11-12 16:22) [2]


> как перехватить у Винды обработку нажатия клавиши


NT - драйвер режима ядра
Маздай - прямой переход в Ring0 с подменой дескриптора шлюза прерывания порта клав-ры на шлюз, ведуший в твой собственный код обработки


 
MBo   (2003-11-12 16:30) [3]

возможно, поможет - в winSDK Help описание структуры MSG, а именно - поле time


 
han_malign   (2003-11-12 16:30) [4]

> yuri (12.11.03 16:11)
<Отображение события>
dwShowEventTime:=GetTickCount;
<Нажатие на кнопку>
dwResponseTime:=GetTickCount-dwShowEventTime;//миллисекунд

> Digitman © (12.11.03 16:22) [2]
> NT - драйвер режима ядра
- да ладно человека пугать, уж точность 20мс, как нибудь, и через очередь сообщений получится, если, конечно, не блокировать ее длительными вычислениями в обработчиках событий...


 
yuri   (2003-11-12 16:59) [5]

Дело в том, что мне нужна точнось 1мс


 
clickmaker   (2003-11-12 17:07) [6]

QueryPerformanceCounter / QueryPerformanceFrequency


 
VMcL   (2003-11-12 17:07) [7]

Может QueryPerformanceCounter, QueryPerformanceFrequency спасут отца русской демократии?


 
VMcL   (2003-11-12 17:08) [8]

2 clickmaker :)


 
Anatoly Podgoretsky   (2003-11-12 17:19) [9]

yuri (12.11.03 16:59) [5]
Дело в том, что виндоус не обеспечивает


 
Digitman   (2003-11-12 17:32) [10]


> han_malign


я не пугаю) ... каков вопрос - таков ответ)


 
han_malign   (2003-11-12 17:42) [11]

> Дело в том, что мне нужна точнось 1мс
- о как - физическое время обновления экрана, в лучшем случае - 10мс, у ему нужно скорость восприятия с точностью до 1мс. Тем более что известно, что время сброса активного состояния пигмента колбочки 15-30мс, палочки ~100мс, а им еще время нужно, чтобы накопить пороговый заряд, для перехода в активное состояние. Думаешь 24Гц и 25-й кадр с потолка взяли?

Опять экстрасэКсов ищем, со свервосприНятием...


 
Dimaz-z   (2003-11-12 17:44) [12]

GetTickCount


 
АСМиД   (2003-11-12 17:55) [13]

Можно попробовать использовать в TTimer интервал в 55 мс и, для расчета точного интервала времени, функцию GetSystemtick - время (в милдисекундах), прошедшее с момента запуска Windows.
Вообще реакция человека на внешнее воздействие не превышает 0.5 сек.


 
han_malign   (2003-11-12 18:06) [14]

> АСМиД (12.11.03 17:55) [13]
> Вообще реакция человека на внешнее воздействие не превышает 0.5 сек.
- это на видеоинформацию. Реакция на тактильные и аудио раздражители быстрее - время обработки меньше, и тип (а, соответственно, и латентность) сенсоров другие.


 
АСМиД   (2003-11-12 18:13) [15]

Может тогда имеет смысл использовать GetSystemTick в цикле с параллельным вызовом ProcessMessage?


 
yuri   (2003-11-12 18:14) [16]

Спасибо попробую


 
yuri   (2003-11-12 18:36) [17]

У кого ещё какие соображения?
Если можно с примерами.


 
yuri   (2003-11-13 15:38) [18]

А нельзя ли написать какой-либо драйвер для клавиатуры, который бы перехватывал событие нажатия клавиши и сразу передавал это событие программе, а не ждать пока его (событие) передаст Винда?
Подскажите пожалуйста что-нибудь, если можно с примером.


 
sniknik   (2003-11-13 15:46) [19]

новый цикл
> А нельзя ли написать какой-либо драйвер для клавиатуры
можно, см.
Digitman © (12.11.03 16:22) [2]
с примером облом, нет у меня такого.



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

Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.011 c
1-78903
Катерина
2003-11-12 15:30
2003.11.24
Создание метода RUN-TIME


3-78749
Dysan
2003-11-06 11:00
2003.11.24
Как через ADOQuery сделать выборку из таблиц из разных директори?


3-78844
Kinder
2003-10-29 19:53
2003.11.24
почему не происходит сортировки?


1-78999
Леонид Федьков
2003-11-14 16:40
2003.11.24
DELPHI и MS Word


1-79002
Aik
2003-11-12 10:39
2003.11.24
Кнопка вперёд и назад, Twebbrowser





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский