Захват движения мыши и экспорт в изображение [код | приложение]

Чтобы получить более подробную информацию об использовании WinForm или веб-приложений, я хочу зафиксировать движение мыши и информацию о щелчках. Было бы идеально, если бы это можно было преобразовать в изображение.

Результат будет примерно таким:

Google: зафиксировать движение мыши в изображении
Вопрос в том, с чего начать создание приложения так?

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

(Кто-нибудь знает, есть ли бесплатное/дешевое приложение с открытым исходным кодом, которое может это сделать)

IOGraphica может это сделать, но это на Java и бесплатно, но не с открытым исходным кодом.


person Ralf de Kleine    schedule 03.03.2011    source источник
comment
Было бы интересно сделать это и на скриншоте приложения.   -  person BenCr    schedule 03.03.2011
comment
Действительно, также будет добавлен захват в качестве фона.   -  person Ralf de Kleine    schedule 25.03.2011


Ответы (2)


Если вы ищете что-то, что вы могли бы запускать извне и отслеживать движения и щелчки мыши, вы можете найти этот проект подключения мыши/клавиатуры на codeproject.com полезным:

http://www.codeproject.com/KB/system/globalmousekeyboardlib.aspx

Есть пример приложения и подключаемая библиотека с полным исходным кодом. Это было бы отправной точкой для использования в ваших усилиях.

person itsmatt    schedule 03.03.2011

Я бы попытался зафиксировать любое движение мыши/щелчок ваших окон и сохранить их в коллекции. Когда вы закончите запись, попробуйте нарисовать свое изображение. Я бы порекомендовал поискать в Google "захват мыши c#" или "ловушка мыши". Некоторое время назад я сделал это, чтобы получить крючок для клавиатуры. Вы можете ознакомиться с разделом Обработка глобальных событий мыши. .

С точки зрения кода это может помочь:

Dictionary<Point, MouseEventInfo> dict = new Dictionary<Point, MouseEventInfo>();

/// see given link to find the correct way to get this kind of event
public void mouse_event(....)
{
   /// get mouse coordinates

   /// create point struct

   /// check if point exists in DICT

   /// no - add new MouseEventInfo at Point

   /// yes - access MouseEventInfo object and increase a value according to the event

}

public void onFinished()
{
     /// create new bitmap/image - width/height according to your screen resultion

     /// iterate through all MouseEventInfo objects and draw any information

}

/// stores mouse event info for a point
class MouseEventInfo
{
      Point p;
      int moved=0;
      int clicked=0;
      int doubleClicked=0;
}

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

чт

person Pilgerstorfer Franz    schedule 03.03.2011