globalmousekeyhook

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

  • 所有者: gmamaladze/globalmousekeyhook
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

nuget master

Mouse and Keyboard Hooking Library in c#

NEWS!

Added support for detection of key combinations and sequences see: Quickstart - Detecting Key Combinations and Seuqnces

What it does?

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

Prerequisites

  • Windows: .Net 4.0+

Installation and sources

Usage

private IKeyboardMouseEvents m_GlobalHook;

public void Subscribe()
{
    // Note: for the application hook, use the Hook.AppEvents() instead
    m_GlobalHook = Hook.GlobalEvents();

    m_GlobalHook.MouseDownExt += GlobalHookMouseDownExt;
    m_GlobalHook.KeyPress += GlobalHookKeyPress;
}

private void GlobalHookKeyPress(object sender, KeyPressEventArgs e)
{
    Console.WriteLine("KeyPress: \t{0}", e.KeyChar);
}

private void GlobalHookMouseDownExt(object sender, MouseEventExtArgs e)
{
    Console.WriteLine("MouseDown: \t{0}; \t System Timestamp: \t{1}", e.Button, e.Timestamp);

    // uncommenting the following line will suppress the middle mouse button click
    // if (e.Buttons == MouseButtons.Middle) { e.Handled = true; }
}

public void Unsubscribe()
{
    m_GlobalHook.MouseDownExt -= GlobalHookMouseDownExt;
    m_GlobalHook.KeyPress -= GlobalHookKeyPress;

    //It is recommened to dispose it
    m_GlobalHook.Dispose();
}

(also have a look at the Demo app included with the source)

How it works?

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 drag actions
  • 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.

Troubleshooting and support

  • Usage or programming related question? Post it on StackOverflow using the tag mousekeyhook
  • Found a bug or missing a feature? Feed the issue tracker

Current project build status

The CI builds are generously hosted and run on the Travis and AppVeyor infrastructures., Travis-CI, AppVeyor, :---------, :-------------------------------------------------:, :-------------------------------------------------------:, master, [![master][master-travis-badge]][master-travis-url], master, vNext, vNext, vNext, [master-travis-url]: https://travis-ci.org/gmamaladze/globalmousekeyhook/branches/
[master-travis-badge]: https://travis-ci.org/gmamaladze/globalmousekeyhook.svg?branch=master

History, Year, URL

--------------, --------------------------------, 2000 - 2008, http://www.codeproject.com/KB/cs/globalhook.aspx, 2008 - 2015, https://globalmousekeyhook.codeplex.com/, 2015 - now, https://github.com/gmamaladze/globalmousekeyhook

Quick contributing guide

  • Fork and clone locally
  • Create a topic specific branch. Add some nice feature.
  • Send a Pull Request to spread the fun!

License

The MIT license see: LICENSE.txt

主要指標

概覽
名稱與所有者gmamaladze/globalmousekeyhook
主編程語言C#
編程語言C# (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2015-03-04 17:00:00
推送於2023-12-15 14:33:07
最后一次提交2023-04-10 12:21:13
發布數1
最新版本名稱v5.4 (發布於 )
第一版名稱v5.4 (發布於 )
用户参与
星數1.1k
關注者數73
派生數260
提交數287
已啟用問題?
問題數136
打開的問題數93
拉請求數47
打開的拉請求數2
關閉的拉請求數12
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?