Глобальный Хук для мыши с отслеживанием удержания ЛКМ - C#
Формулировка задачи:
Здравствуйте!
Для программы нужен хук, который позволит программе реагировать не только на нажатие ЛКМ, но так же и её удерживание! Долго искал, но гугл молчит. Если и есть готовые хуки, то они довольно сложные для новичка вроде меня.
А вообще нужно, что бы реализовалось следующее: При нажатии на ЛКМ в любом месте (вне окна программы) на форме в поле textBox1 с каждым кликом прибавлялось +1. Т.е. такой себе счётчик нажатий на ЛКМ. При этом если зажать ЛКМ прибавления должны продолжатся с определенной частотой. Если у Вас есть подобный код, или опыт работы в Хуком мыши - прошу сразу привести пример реализации
Заранее всем спасибо за помощь!
Решение задачи: «Глобальный Хук для мыши с отслеживанием удержания ЛКМ»
textual
Листинг программы
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var hook = new RamGecTools.MouseHook();
hook.LeftButtonDown += Hook_LeftButtonDown;
hook.LeftButtonUp += Hook_LeftButtonUp;
hook.Install();
}
private int _clickCount;
private Timer _timer;
private void Hook_LeftButtonDown(RamGecTools.MouseHook.MSLLHOOKSTRUCT mouseStruct)
{
_timer = new Timer();
_timer.Interval = 1000;
_timer.Tick += (s, e) => Increment();
_timer.Start();
Increment();
}
private void Hook_LeftButtonUp(RamGecTools.MouseHook.MSLLHOOKSTRUCT mouseStruct)
{
if (_timer != null)
{
_timer.Stop();
_timer.Dispose();
_timer = null;
}
}
private void Increment()
{
Text = (++_clickCount).ToString();
}
}