1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/loamen-KeyMouseHook

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.zh-CN.md 2.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 15:02 5218a2a

Введение

Это библиотека расширений, которая имитирует нажатия клавиш клавиатуры и клики мыши. Она основана на библиотеках globalmousekeyhook и InputSimulator. Библиотека может отслеживать и записывать действия с клавиатурой и мышью. Также она позволяет записывать и воспроизводить эти действия.

Среда

  • Windows: .Net Framework 4.0+;
  • ветви master/dev: .Net Framework 4.0;
  • ветвь framework4.8: .Net Framework 4.8.

Установка и исходный код

nuget install KeyMouseHook.

  • NuGet package;
  • исходный код.

Использование

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);

(В исходном коде есть более подробные примеры.)

Интерфейс

Благодарности

  • globalmousekeyhook (лицензия MIT);
  • InputSimulator (лицензия MIT).

Внесение кода

  1. Создайте форк и клонируйте его на свой компьютер.
  2. Создайте ветку и добавьте свой код.
  3. Отправьте запрос на включение изменений.

Лицензия

Лицензия MIT. См.: LICENSE.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/loamen-KeyMouseHook.git
git@api.gitlife.ru:oschina-mirror/loamen-KeyMouseHook.git
oschina-mirror
loamen-KeyMouseHook
loamen-KeyMouseHook
master