Как узнать, эмулируют ли какие-либо программы клавиши

Я сделал игру, в которой задача состоит в том, чтобы нажать пробел 100 раз, что является многопользовательским режимом. Люди начинают использовать простые приложения, которые спамят клавишей «пробел», и мне интересно, есть ли способ только слушать пользовательский ввод или обнаруживать программы, эмулирующие ключевые события.

Я не тестировал одну из этих программ, но моя программа прослушивает событие KeyUp.

Только что протестировано: они могут эмулировать нажатия клавиш


person Jamie H    schedule 03.05.2013    source источник
comment
Я так не думаю, потому что эмулятор просто отправляет эмулируемый Key-Event в ОС, которая обрабатывает событие и отправляет его в вашу программу, так как перепрограммировать ОС там имхо никак.   -  person jAC    schedule 03.05.2013
comment
Нет, я думаю, вам лучше изучить патчи, например, посмотреть на постоянство нажатия кнопки пробела, если каждый раз одно и то же - будет запрограммировано. Или, если 100 было нажато примерно за 2 секунды, это будет запрограммировано, и так далее.   -  person Philip Gullick    schedule 03.05.2013


Ответы (2)


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

person playerone    schedule 03.05.2013
comment
Какую ценность мне лучше всего попробовать? Я замерю разницу между keyup и keydown, и если она находится в пределах определенного значения более 5 раз, она их ударит. - person Jamie H; 03.05.2013
comment
Я бы измерил время между нажатиями клавиш, нажатиями клавиш или и тем, и другим. Сравните время между 100 нажатиями клавиш. Если они все одинаковые, скорее всего, это делается автоматически. - person playerone; 03.05.2013

Одна большая проблема: все, что им нужно, это припаять осциллятор к донорской клавиатуре, и тогда он даже не виден ни в одном из процессов компьютера. Звучит как много работы, но вы будете удивлены, как усердно люди будут работать, чтобы обмануть. Обнаружьте это с помощью проверки времени, как указано выше. Не многие люди знают, как делать часы с расширенным спектром.

person Joe    schedule 14.01.2014