- 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(null, null);
- }
- return 0;
- }
- }
- }
c#中通过设置钩子监视鼠标移动
最新推荐文章于 2024-07-22 14:47:45 发布