示例#1
0
 private void DebugMousePressSignal(int code, int wParam, MouseHookStructure.HookStruct lParam)
 {
     logger.Debug($"mouse code = {code}");
     logger.Debug($"mouse wparam = {wParam}");
     logger.Debug($"mouse lparam struct = (info = {lParam.dwExtraInfo}, mouseData {lParam.mousedata}, " +
                  $"testCode {lParam.wHitTestCode}, Point.X = {lParam.pt.x}, Point.Y = {lParam.pt.y})");
 }
示例#2
0
        /// <summary>
        /// Global mouse hook procedure
        /// </summary>
        /// <param name="code"></param>
        /// <param name="wParam"></param>
        /// <param name="lParam"></param>
        /// <returns></returns>
        private IntPtr ConfigHook(int code, int wParam, ref MouseHookStructure.HookStruct lParam)
        {
            //DebugMousePressSignal(code, wParam, lParam);
            if (code < 0)
            {
                //you need to call CallNextHookEx without further processing
                //and return the value returned by CallNextHookEx
                return(ApiFunctions.CallNextHookEx(mouseHookHandler, code, wParam, ref lParam));
            }
            if (MouseCodes.WM_LBUTTONDOWN == (MouseCodes)wParam || MouseCodes.WM_RBUTTONDOWN == (MouseCodes)wParam)

            {
                var modKeysToPressOnce = Globals.GetModKeysToPressOnce().ToList();
                var modKeysToUse       = Globals.GetModKeysToHoldDown().ToList();
                modKeysToUse.AddRange(modKeysToPressOnce);

                CheckCrtlKeyPressed();
                //CheckShiftKeyPressed();
            }
            return(ApiFunctions.CallNextHookEx(mouseHookHandler, code, wParam, ref lParam));
        }
示例#3
0
 public static extern IntPtr CallNextHookEx(IntPtr hookHandler, int nCode, int wParam, ref MouseHookStructure.HookStruct lParam);