This project is read-only.


Project Description

This library allows you to tap keyboard and mouse and to detect and record their activity even when an application is inactive and runs in background.

This library attaches to windows global hooks, tracks keyboard and mouse clicks and movement and raises common .NET events with KeyEventArgs and MouseEventArgs, so you can easily retrieve any information you need:
  • Mouse coordinates
  • Mouse buttons clicked
  • Mouse wheel scrolls
  • Key presses and releases
  • Special key states

Additionally, there are MouseEventExtArgs and KeyEventExtArgs which provide further options:
  • Input suppression
  • Timestamp
  • IsMouseDown/Up
  • IsKeyDown/Up.


The library is a successor of my CodeProject article Processing Global Mouse and Keyboard Hooks in C# This article was posted in 2004 and updated in 2006 and 2008. With nearly 2.000.000 views and over 25.000 downloads it became quite popular. During all this time until now I receive a lot of positive feedback and recommendations. There where also many useful contributions which where usually posted as code snippets in forum.

Project Goals

Now instead of publishing yet another version on my own I decided to open it for the community and ask you to participate actively.
So please be enthusiastic, feel free to join the project. You can help by:
  • Contributing code.
  • Creating issue items requesting additional features or reporting defects.
  • Voting for features and fixes you are interested in.
  • Testing the component in different environments.
  • Writing developer documentation.

And once more - thank you all for all your great comments on CodeProject forum and looking forward for your brilliant contributions at CodePlex

George Mamaladze

Last edited Apr 5, 2015 at 12:59 PM by gmamaladze, version 11