تشخیص کلیک ماوس در خارج از فرم برنامه

برای تشخیص کلیک ماوس در خارج از فرم برنامه در سی شارپ ابتدا فایل زیر را دانلود و آن را از حالت فشرده خارج کرده و به رفرنس های برنامه اضافه کنید :

فرض کنید که در برنامه می خواهیم تعداد کلیک هایی که خارج از فرم می شود را شمارش کنیم. برای این کار ابتدا یک Label بر روی فرم قرار داده و سپس به صورت زیر عمل می کنیم :

using System;
using System.Windows.Forms;

using WindowsHookLib;

namespace MouseClick
{
    public partial class Form1 : Form
    {
        private MouseHook _mouseHook = new MouseHook();
        private int _mouseClickCount = 0;

        public Form1()
        {
            InitializeComponent();
            
            this._mouseHook.MouseDown += _mouseHook_MouseDown;
            try
            {
                this._mouseHook.InstallHook();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private bool IsMouseInForm(int x, int y)
        {
            if (x >= this.Location.X && x <= (this.Location.X + this.Width) &&
                y >= this.Location.Y && y <= (this.Location.Y + this.Height))
            {
                return true;
            }
            return false;
        }

        private void _mouseHook_MouseDown(object sender, WindowsHookLib.MouseEventArgs e)
        {
            if (!IsMouseInForm(e.X, e.Y))
            {
                this._mouseClickCount++;
                this.label1.Text = this._mouseClickCount.ToString();
            }
        }
    }
}

حال اگر برنامه را اجرا و بر روی قسمتی های مختلف به جز فرم برنامه کلیک کنید، تعداد کلیک های شما در Label نمایش داده می شود.