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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2013, 21:12   #21
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Не важно, использует или нет скринсейвер, если он вдруг возник, и юзер не предпринял попыток его закрыть, то точно не читает.
Аналогично, если юзер переключился на другое окно, значит уже не читает.
Если в читалке есть прокрутка, то можно отслеживать прокручивание, зная примерно сколько времени надо на прочтение открытого куска текста. Если долго не прокручивает, значит не читает.
Ну а если весь текст на экране, то юзер может читать и не нажимая ничего на клавиатуре, и не трогая мышь.
Arigato вне форума Ответить с цитированием
Старый 06.04.2013, 11:03   #22
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
Аналогично, если юзер переключился на другое окно, значит уже не читает.
А если какой-нибудь антивирус написал, что пора обновлять базу, а пользователь продолжает читать, не обращая внимание на него?
А ещё можно включить камеру и отслеживать действия пользователя по изображению)
Kix.IV вне форума Ответить с цитированием
Старый 06.04.2013, 11:08   #23
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Kix.IV Посмотреть сообщение
А если какой-нибудь антивирус написал, что пора обновлять базу, а пользователь продолжает читать, не обращая внимание на него?
А ещё можно включить камеру и отслеживать действия пользователя по изображению)
Пресекать поползновения юзера, искажающие статистику!
Раз окно стало неактивным, значит, не читал, а потому премию за текущий месяц ему платить не нужно.

На самом деле на экране может поместиться довольно небольшой кусочек текста. И если юзер мог уже 5 раз его прочитать, а до органов управления даже не дотронулся, значит, не читает.
s-andriano вне форума Ответить с цитированием
Старый 06.04.2013, 11:18   #24
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от Kix.IV Посмотреть сообщение
А если какой-нибудь антивирус написал, что пора обновлять базу, а пользователь продолжает читать, не обращая внимание на него?
Проверяйте, перекрыто или нет окно с текстом другими окнами.
Arigato вне форума Ответить с цитированием
Старый 06.04.2013, 15:27   #25
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
Проверяйте, перекрыто или нет окно с текстом другими окнами.
Вы неправильно поняли. Окно с информацией об обновлении читать не мешает(по крайней мере у Avira, которая стояла у меня раньше), но при этом является активным.
Kix.IV вне форума Ответить с цитированием
Старый 06.04.2013, 15:31   #26
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Все я правильно понял. Написал же, что надо проверят, перекрывает активное окно наш текст или нет. Если перекрывает и пользователь его не убирает, значит уже не читает, а если не перекрывает, то может быть и читает.
Вообще, тут можно доказать, что пользователь не читает, но нельзя доказать, что он читает.
Arigato вне форума Ответить с цитированием
Старый 06.04.2013, 18:20   #27
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Вообще, тут можно доказать, что пользователь не читает, но нельзя доказать, что он читает.
Правильно, а потому все изыски сложнее измерения времени между двумя воздействиями на органы управления текущей программы, это уже не решение задачи, а программирование ради программирования.
s-andriano вне форума Ответить с цитированием
Старый 06.04.2013, 19:09   #28
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Не верно, если доказано, что человек не читает, уже хорошо. Ну а если не доказано, тогда можно и время считать.
Arigato вне форума Ответить с цитированием
Старый 07.04.2013, 15:04   #29
D!zel
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 74
По умолчанию

Допустим, а можно посчитать, сколько символов показано в поле? Именно показано, т.е. после того, как пользователь проскроллил текст?
Если да, то решение должно быть примерно таким:
Пользователь выбрал раздел, запускаем таймер.
Пользователь начал скролить текст - записываем количество отработанного времени в переменную_1 и количество прочтенных символов в переменную_2 (грубо говоря), и начинаем считать снова (с нуля), и так до тех пор, пока мы не определим среднее количество времени, которое пользователь потратил на чтение текста.
Для пущего успеха также можно использовать "внешние" факторы, такие как перекрытие окна, потеря фокуса окна программы, запуск скринсейвера, и т.д.
Плюс - проверяем записанное время в переменной_1 и количество прочтенных символов в переменной_2 со временем, которое пользователь потратил на чтение текущих символов. Если символов столько же (или приблизительно столько же), а времени потрачено на порядок больше - останавливаем таймер (пользователь не читает).

Но точно время определить невозможно, по-моему. Т.к. пользователь может проскролить текст и сразу уйти пить чай, или прочитать половину текста. В этом случае приходится только догадываться, когда пользователь перестал читать текст, и когда начал. Хотя теоретически, можно таймер не останавливать вообще, и продолжать считать время. В этом случае проверяем сколько пользователь не скролил текст, и метку времени, когда начал скролить, т.е. логически можно предположить, что пользователь читал текст, и не дочитав до конца (в пределах скрола) - ушел по делам, вернулся - продолжил чтение. Тогда в таком случае сравниваем время простоя со средним временем чтения кол-ва символов, и отсекаем от времени простоя среднее время чтение, и получим фактическое время, когда пользователь отсутствовал (не читал текст).

Примерно так.
D!zel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить где юзер закрыл браузер KLAXON PHP 13 11.02.2011 01:28
[PHP] Как узнать сколько прошло времени? RESPECT8 PHP 1 24.10.2010 09:43
Сколько стоит такая программка? И сколько по времени её сделать? Палыч I Фриланс 8 10.09.2010 16:23
Как определить сколько памяти у видеокарты flug Общие вопросы Delphi 12 13.07.2010 08:13