22 Star 87 Fork 48

loamen / KeyMouseHook

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.zh-CN.md 4.21 KB
一键复制 编辑 原始数据 按行查看 历史
玏佾 提交于 2022-07-15 17:20 . [update] add branch framework4.8

nuget stable build license platforms download_count release 龙门信息①

c#(winform)模拟键盘按键和鼠标点击操作类库

English

简介

这是一个基于globalmousekeyhookInputSimulator 的类似于按键精灵的模拟键盘按键和鼠标点击操作的扩展类库。可以检测并记录键盘和鼠标的活动,你可以录制你的键鼠操作的记录并进行回放,可模拟键盘输入和鼠标点击操作。

环境

  • Windows: .Net Framework 4.0+
  • 分支 master/dev: .Net Framework 4.0
  • 分支 framework4.8: .Net Framework 4.8

安装和源码

nuget install KeyMouseHook

使用

private readonly KeyMouseFactory eventHookFactory = new KeyMouseFactory(HookType.GlobalEvents);
private readonly KeyboardWatcher keyboardWatcher;
private readonly MouseWatcher mouseWatcher;
private List<MouseKeyEvent> _mouseKeyEvents;

public FormMain()
{
   InitializeComponent();

   keyboardWatcher = eventHookFactory.GetKeyboardWatcher();
   keyboardWatcher.OnKeyboardInput += (s, e) =>
   {
	if (_mouseKeyEvents != null)
	    _mouseKeyEvents.Add(e);
   };

   mouseWatcher = eventHookFactory.GetMouseWatcher();
   mouseWatcher.OnMouseInput += (s, e) =>
   {
	if (_mouseKeyEvents != null)
	    _mouseKeyEvents.Add(e);
   };
}

private void StartWatch(IKeyboardMouseEvents events = null)
{
    _macroEvents = new List<MacroEvent>();
    keyboardWatcher.Start(events);
    mouseWatcher.Start(events);
}

private void StopWatch()
{
   keyboardWatcher.Stop();
   mouseWatcher.Stop();
}

private void Playback()
{
   var sim = new InputSimulator();
   //var sim = new KeyMouseSimulator();
   sim.PlayBack(_macroEvents);
}
keyboardWatcher = eventHookFactory.GetKeyboardWatcher().Disable(MacroEventType.KeyDown | MacroEventType.KeyUp).Enable(MacroEventType.KeyPress);
mouseWatcher = eventHookFactory.GetMouseWatcher().Enable(MacroEventType.MouseDoubleClick | MacroEventType.MouseDragStarted).Disable(MacroEventType.MouseDragFinished | MacroEventType.MouseMove);
var sim = new InputSimulator().Enable(MacroEventType.MouseDoubleClick | MacroEventType.KeyPress).Disable(MacroEventType.MouseMove | MacroEventType.KeyDown | MacroEventType.KeyUp);

(源码里包含更详细的示例)

界面

c#(winform)模拟键盘按键和鼠标点击操作类库

鸣谢

贡献代码

  • Fork并克隆到本机
  • 创建一个分支并添加你的代码
  • 发送一个Pull Request

License

The MIT license see: LICENSE

C#
1
https://gitee.com/loamen/KeyMouseHook.git
git@gitee.com:loamen/KeyMouseHook.git
loamen
KeyMouseHook
KeyMouseHook
master

搜索帮助