Запись движения курсора
Это скорее концептуальный вопрос / вопрос реализации, а не конкретная языковая проблема.
У кого-нибудь есть понимание записи движений курсора?
Получить текущую позицию курсора очень просто, но как бы вы записали путь, по которому следует курсор?
(До степени детализации, где это может быть нанесено графически без двусмысленности относительно выбранного пути)
Я полагаю, что вы могли бы записывать текущую позицию курсора несколько раз после небольшой продолжительности, регистрируя все это, чтобы составить список хронологически посещенных координат, но я не уверен, как часто (или выполнимо) должна происходить запись; каждые 10 мс?
Я даже не сталкивался с методом сна в течение таких коротких промежутков времени с необходимой точностью!
Я также обеспокоен производительностью сна и записи при интенсивном использовании процессора; когда пользователь использует мышь для взаимодействия с интенсивным программным обеспечением.
Я даже не совсем уверен, куда на самом деле движется курсор. Если я проведу курсором по экрану, компьютер (где-то внутри) узнает, что я пересек все эти пиксели, или моя мышь действительно сказала ему: "Я был там, теперь я здесь, теперь я там".
Я также ищу способ различения между быстрым и медленным движением, но сейчас я могу просто наблюдать интервал графика на графике посещенных координат.
У кого-нибудь есть понимание этого? Любые потенциальные подводные камни; мои опасения законны? Я поступаю неправильно по этому поводу?
(Как видно, мне действительно нужны некоторые рекомендации по этому вопросу)
Спасибо!
1 ответ
Намного проще регистрировать движения мыши в одном приложении - просто регистрировать что-то на каждом WM_MOUSEMOVE
сообщение. Вы получите сообщение, периодически обновляющее местоположение указателя мыши. Вы не получите WM_MOUSEMOVE
сообщение для каждого пикселя, который пересекает мышь, но оно будет прыгать в зависимости от того, насколько быстро вы перемещаете мышь и насколько занята система.
Регистрация движений мыши в каком-либо другом приложении будет немного более сложной. Если вы написали и регистратор, и приложение, которое регистрируется, то вы можете обработать WM_MOUSEMOVE
в регистрируемом приложении и отправьте соответствующее сообщение в ваше приложение регистрации. Ваш выбор МПК; просто SendMessage()
может быть достаточно.
Регистрация движений мыши по всей системе - совершенно другая проблема. Возможно, вам придется зацепиться где-то ближе к уровню водителя.
Я просто подумал о другом подходе - хуки CBT (Computer-Based Training) предназначены для предоставления именно такой информации в разных приложениях. Я никогда не использовал их, так что вам придется больше расследовать.