Глобальный Хук для мыши с отслеживанием удержания ЛКМ - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Для программы нужен хук, который позволит программе реагировать не только на нажатие ЛКМ, но так же и её удерживание! Долго искал, но гугл молчит. Если и есть готовые хуки, то они довольно сложные для новичка вроде меня. А вообще нужно, что бы реализовалось следующее: При нажатии на ЛКМ в любом месте (вне окна программы) на форме в поле textBox1 с каждым кликом прибавлялось +1. Т.е. такой себе счётчик нажатий на ЛКМ. При этом если зажать ЛКМ прибавления должны продолжатся с определенной частотой. Если у Вас есть подобный код, или опыт работы в Хуком мыши - прошу сразу привести пример реализации Заранее всем спасибо за помощь!

Решение задачи: «Глобальный Хук для мыши с отслеживанием удержания ЛКМ»

textual
Листинг программы
  1. public partial class Form1 : Form
  2.     {
  3.         public Form1()
  4.         {
  5.             InitializeComponent();
  6.  
  7.             var hook = new RamGecTools.MouseHook();
  8.             hook.LeftButtonDown += Hook_LeftButtonDown;
  9.             hook.LeftButtonUp += Hook_LeftButtonUp;
  10.             hook.Install();
  11.         }
  12.  
  13.         private int _clickCount;
  14.         private Timer _timer;
  15.  
  16.         private void Hook_LeftButtonDown(RamGecTools.MouseHook.MSLLHOOKSTRUCT mouseStruct)
  17.         {
  18.             _timer = new Timer();
  19.             _timer.Interval = 1000;
  20.             _timer.Tick += (s, e) => Increment();
  21.             _timer.Start();
  22.             Increment();
  23.         }
  24.  
  25.         private void Hook_LeftButtonUp(RamGecTools.MouseHook.MSLLHOOKSTRUCT mouseStruct)
  26.         {
  27.             if (_timer != null)
  28.             {
  29.                 _timer.Stop();
  30.                 _timer.Dispose();
  31.                 _timer = null;
  32.             }
  33.         }
  34.  
  35.         private void Increment()
  36.         {
  37.             Text = (++_clickCount).ToString();
  38.         }
  39.     }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут