The Wayback Machine - https://web.archive.org/web/20200912152926/https://github.com/justcoding121/Windows-User-Action-Hook
Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Windows User Action Hook

Note: This Project is no longer maintained.

A one stop library for global windows user actions such mouse, keyboard, clipboard, & print events

Build Status

Kindly report only issues/bugs here . For programming help or questions use StackOverflow with the tag EventHook or Windows-User-Action-Hook.

Supported Events

  • Keyboard events
  • Mouse events
  • clipboard events
  • application events
  • print events

Development enviroment

  • Visual Studio 2017

Usage

Install by nuget

Install-Package EventHook

Sample Code:

using (var eventHookFactory = new EventHookFactory())
{
    var keyboardWatcher = eventHookFactory.GetKeyboardWatcher();
    keyboardWatcher.Start();
    keyboardWatcher.OnKeyInput += (s, e) =>
    {
        Console.WriteLine(string.Format("Key {0} event of key {1}", e.KeyData.EventType, e.KeyData.Keyname));
    };

    var mouseWatcher = eventHookFactory.GetMouseWatcher();
    mouseWatcher.Start();
    mouseWatcher.OnMouseInput += (s, e) =>
    {
        Console.WriteLine(string.Format("Mouse event {0} at point {1},{2}", e.Message.ToString(), e.Point.x, e.Point.y));
    };

    var clipboardWatcher = eventHookFactory.GetClipboardWatcher();
    clipboardWatcher.Start();
    clipboardWatcher.OnClipboardModified += (s, e) =>
    {
        Console.WriteLine(string.Format("Clipboard updated with data '{0}' of format {1}", e.Data, e.DataFormat.ToString()));
    };


    var applicationWatcher = eventHookFactory.GetApplicationWatcher();
    applicationWatcher.Start();
    applicationWatcher.OnApplicationWindowChange += (s, e) =>
    {
        Console.WriteLine(string.Format("Application window of '{0}' with the title '{1}' was {2}", e.ApplicationData.AppName, e.ApplicationData.AppTitle, e.Event));
    };

    var printWatcher = eventHookFactory.GetPrintWatcher();
    printWatcher.Start();
    printWatcher.OnPrintEvent += (s, e) =>
    {
        Console.WriteLine(string.Format("Printer '{0}' currently printing {1} pages.", e.EventData.PrinterName, e.EventData.Pages));
    };

    //waiting here to keep this thread running           
    Console.Read();

    //stop watching
    keyboardWatcher.Stop();
    mouseWatcher.Stop();
    clipboardWatcher.Stop();
    applicationWatcher.Stop();
    printWatcher.Stop();
}

alt tag

You can’t perform that action at this time.