c#中通过设置钩子监视鼠标移动

    技术2022-05-11  7

    using  System; using  System.Windows.Forms; using  System.Runtime.InteropServices; namespace  WindowsApplication1 {    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }                 private void Form1_Load(object sender, EventArgs e)        {            Win32Hook hook = new Win32Hook();            hook.onMouseChange += new EventHandler(hook_onMouseChange);            hook.SetHook();        }        void hook_onMouseChange(object sender, EventArgs e)        {            this.Text = Cursor.Position.ToString();        }    }    public class Win32Hook    {        [DllImport("kernel32")]        public static extern int GetCurrentThreadId();        [DllImport("user32",CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]        public static extern int SetWindowsHookEx(            HookType idHook,            HOOKPROC lpfn,            int hmod,            int dwThreadId);        public enum HookType        {            WH_GETMESSAGE = 3        }        public delegate int HOOKPROC(int nCode, int wParam, int lParam);        public event System.EventHandler onMouseChange;        public void SetHook()        {            SetWindowsHookEx(HookType.WH_GETMESSAGE,                new HOOKPROC(this.MyKeyboardProc),                0,                GetCurrentThreadId());        }        public int MyKeyboardProc(int nCode, int wParam, int lParam)        {            if (onMouseChange != null)            {                onMouseChange(nullnull);            }            return 0;        }    }}

    最新回复(0)