diff --git a/src/Basal/IFox.Basal.Shared/WindowsAPI/MouseHook.cs b/src/Basal/IFox.Basal.Shared/WindowsAPI/MouseHook.cs index b3143181565aee8b92f77c1764e8803be6fc0271..00781bd723e05744391c54140207f5c31b7cc9af 100644 --- a/src/Basal/IFox.Basal.Shared/WindowsAPI/MouseHook.cs +++ b/src/Basal/IFox.Basal.Shared/WindowsAPI/MouseHook.cs @@ -109,6 +109,8 @@ public void SetHook(bool processHook = false) bool _down = false; bool _up = false; bool _ck = false; + bool _wheel = false; + bool _move = false; /// /// 钩子的消息处理 @@ -132,6 +134,8 @@ bool HookTask(int nCode, int wParam, IntPtr lParam) _down = false; _up = false; _ck = false; + _wheel = false; + _move = false; switch ((WM)wParam) { @@ -183,9 +187,11 @@ bool HookTask(int nCode, int wParam, IntPtr lParam) _ck = true; break; case WM.WM_MOUSEWHEEL: + _wheel = true; // 滚轮 break; case WM.WM_MOUSEMOVE: + _move = true; // 移动 // 假设想要限制鼠标在屏幕中的移动区域能够在此处设置 // 后期须要考虑实际的x y的容差 @@ -220,8 +226,14 @@ bool HookTask(int nCode, int wParam, IntPtr lParam) _watch.Start(); } } - MouseMove?.Invoke(this, e); - MouseWheel?.Invoke(this, e); + if (_move) + { + MouseMove?.Invoke(this, e); + } + if (_wheel) + { + MouseWheel?.Invoke(this, e); + } // 屏蔽此输入 if (_isHookBreak)