Получите все события клавиатуры с помощью VB.Net

Я записал приложение с простым текстовым полем, которое пытается идентифицировать пользователя от их привычек ввода (интервал между нажатиями клавиш, клавиша продолжительности удерживается, время между нажатиями клавиш т.е. a-> s более быстро, чем a-> v для некоторых пользователей, короче для других в зависимости от ввода стиля). Это совсем не прекрасно, но это действительно правильно определяет умеренные значительные различия в стиле.

Я надеюсь использовать это в качестве формы монитора безопасности - Если стиль ввода пользователя не соответствует распознанному шаблону, сообщает центральному серверу.

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

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

Отказ от ответственности: Да, я знаю, что это прибывает опасно близко к записи клавиатурного перехватчика, который является verboten, но если бы я хотел сделать это, то я записал бы драйвер клавиатуры в C++ - я уверен, что это было бы намного более оптимизировано и легче запутать, чем неповоротливый блок.Net MSIL. Я не сомневаюсь, что буду парировать, "Это - клавиатурный перехватчик" комментарии, но я врезался в стену и должен спросить где-нибудь...

Я не нуждаюсь в приложении, которое будет скрыто - но идеально хотел бы смочь получить вход без явного пользовательского подтверждения (вне установки администратором) - Если пользовательское подтверждение требуется, я могу жить с тот (просто), если это может быть одноразово, и у меня есть некоторый способ отследить и сообщить отказы.

Это даже возможно в .NET? Единственные примеры я смог найти любого, работают путем добавления, что событие сцепляется с каждым ключом, который кажется неуклюжим, и я вообразил бы, подвержено ошибкам. - или Они опрашивают состояние клавиатуры для определения нажатых клавиш. Это бесполезно для меня как a) мне нужны точные синхронизации нажатий клавиш так ключ/вниз, события - необходимость и b) это противно.

Меня не удивило бы, если платформа разработана для специфического запрещения этого, в этом случае, я должен буду отступить к некоторому неуправляемому коду для обеспечения событий. Я, очевидно, предпочел бы использовать управляемый код полностью.

Любая справка ценится.

Править: Благодаря ответу Hans Passant это - лучший ресурс, который я нашел до сих пор: http://www.codeguru.com/columns/vb/article.php/c4831

5
задан Basic 9 August 2010 в 17:14
поделиться