Глобальный Хук для мыши с отслеживанием удержания ЛКМ - 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();
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5