Отслеживание кликов в приложениях Windows - PullRequest
7 голосов
/ 31 марта 2012

Мне интересно собирать метрики использования для приложения, которое я не написал и не могу контролировать. Это приложение, работающее в Windows.

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

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

Есть мысли по поводу этой идеи? Существуют ли сторонние продукты или библиотеки, которые могли бы способствовать этим решениям, которые не требуют модификации существующего приложения?

1 Ответ

3 голосов
/ 03 апреля 2012

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

Подход, который вы изложили, кажется разумным. Недостатки глобального перехвата:

  1. Это бремя для каждого процесса, так как ваш код хука будет внедрен в каждый процесс.
  2. Это может натолкнуться на барьеры безопасности. Например, если вы подключаетесь к приложению со средним уровнем целостности, я не думаю, что вы сможете подключить приложение с высоким уровнем целостности. Кроме того, вы по сути создаете кейлоггер, поэтому не удивляйтесь, если какое-нибудь антивирусное приложение помечает вас как шпионское ПО.
  3. Вам может потребоваться 64-битная версия и 32-битная версия.

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

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

...