Esempio n. 1
0
        private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
        {
            NetworkCommunicator.SendAsync(new HarmonyPacket()
            {
                Type = HarmonyPacket.PacketType.KeyBoardPacket,
                Pack = new HarmonyPacket.KeyboardPacket()
                {
                    wParam = wParam.ToInt32(),
                    Key    = (Keys)Marshal.ReadInt32(lParam)
                }
            });

            return((IntPtr)NetworkCommunicator.OnSlave + (int)NativeMethods.CallNextHookEx(_hookId, nCode, wParam, lParam));
        }
Esempio n. 2
0
        private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode < 0)
            {
                return(NativeMethods.CallNextHookEx(_hookId, nCode, wParam, lParam));
            }
            var hookStruct = (MOUSEINPUT)Marshal.PtrToStructure(lParam, typeof(MOUSEINPUT));

            var action = Mouse.MapWParamToFlags(wParam.ToInt32());

            if (action == (uint)MouseFlag.Move)
            {
                NetworkCommunicator.SendAsync(new HarmonyPacket()
                {
                    Type = HarmonyPacket.PacketType.MouseMovePacket,
                    Pack = new HarmonyPacket.MouseMovePacket()
                    {
                        PosX = hookStruct.X,
                        PosY = hookStruct.Y
                    }
                });
            }
            else
            {
                NetworkCommunicator.SendAsync(new HarmonyPacket()
                {
                    Type = HarmonyPacket.PacketType.MousePacket,
                    Pack = new HarmonyPacket.MousePacket {
                        MouseData = hookStruct.MouseData,
                        Action    = Mouse.MapWParamToFlags(wParam.ToInt32()),
                        Flags     = hookStruct.Flags,
                    }
                });
            }
            return((IntPtr)NetworkCommunicator.OnSlave + (int)NativeMethods.CallNextHookEx(_hookId, nCode, wParam, lParam));
        }