Ejemplo n.º 1
0
 private void LogKeyCombo(KeyHookEventArgs e)
 {
     if (this.pressedKeys.Count != 0)
     {
         /*string _t = String.Format("[{0}]", String.Join(" + ", this.pressedKeys.ToArray()));
          * if (this.pressedChar != '\0')
          * {
          *  _t += this.pressedChar;
          *  this.pressedChar = '\0';
          * }
          * this.keyLog.Enqueue(_t);*/
         this.keyLog.Enqueue(HookEventCodec.GetEncodedData(HookEventCodec.EventClass.KeyEvent, HookEventCodec.EventType.KeyPress, this.CreateArgument(e), this.pressedKeys.ToArray(), this.pressedChar));
     }
 }
Ejemplo n.º 2
0
 public void EncodeEvent(int id, EventArgs args, HookEventCodec.EventType eventType)
 {
     this._neuroLog.Write("Encode Event");
     if (args is KeyEventArgs)
     {
         KeyEventArgs ke = args as KeyEventArgs;
         this.DispatchData(id, ActionCenter.ActionType.KeyEvent, HookEventCodec.GetEncodedData(HookEventCodec.EventClass.KeyEvent, eventType, new KeyHookEventArgs((uint)ke.KeyValue, true, ke.Alt, ke.Control, ke.Shift, false, false, false), new int[] { ke.KeyValue }));
         this._neuroLog.WriteFormat("Dispatched Key Event", "Id: {0}\nType: {1}\nKey Value: {2}\nAlt: {3}\nCtrl: {4}\nShift: {5}",
                                    id, eventType, ke.KeyValue, ke.Alt, ke.Control, ke.Shift);
     }
     else if (args is MouseEventArgs)
     {
         MouseEventArgs me = args as MouseEventArgs;
         this.DispatchData(id, ActionCenter.ActionType.MouseEvent, HookEventCodec.GetEncodedData(HookEventCodec.EventClass.MouseEvent, eventType, new MouseHookEventArgs(true, me.Button, me.Clicks, me.X, me.Y, me.Delta, false, false, false, false, false, false)));
         if (eventType == HookEventCodec.EventType.MouseDoubleClick)
         {
             this._neuroLog.WriteFormat("Dispatched Mouse Event", "Id: {0}\nType: {1}\nButton: {2}\nClick Count: {3}\nLocation: {4}, {5}\nScroll Delta: {6}",
                                        id, eventType, me.Button, me.Clicks, me.X, me.Y, me.Delta);
         }
     }
 }
Ejemplo n.º 3
0
        private HookEventArgs[] DecodeHookEvents(Stream ls)
        {
            List <HookEventArgs> hookEvents = new List <HookEventArgs>();

            MemoryStream ms = ls as MemoryStream;

            HookEventCodec.EventClass ec;
            HookEventCodec.EventType  et;
            HookEventArgs             ha;

            byte[] pressedKeys;
            char   pressedChar;
            int    offset = 0;

            while (HookEventCodec.GetDecodedData(offset, ms.ToArray(), out ec, out et, out ha, out pressedKeys, out pressedChar))
            {
                if (ec == HookEventCodec.EventClass.MouseEvent)
                {
                    ha      = new MouseHookEventArgsEx(ha as MouseHookEventArgs, et);
                    offset += (int)HookEventCodec.Offsets.MouseLogOffset;
                }
                else
                {
                    KeyHookEventArgs e = ha as KeyHookEventArgs;
                    List <System.Windows.Forms.Keys> pKeys = new List <System.Windows.Forms.Keys>();
                    foreach (byte b in pressedKeys)
                    {
                        if (b != 0)
                        {
                            pKeys.Add((System.Windows.Forms.Keys)b);
                        }
                    }

                    offset += (int)HookEventCodec.Offsets.KeyLogOffset;
                    ha      = new KeyHookEventArgsEx(e, et, pKeys, pressedChar);
                }
                hookEvents.Add(ha);
            }
            return(hookEvents.ToArray());
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="args">Original MouseHookEventArgs object</param>
 /// <param name="type">Type of event</param>
 public MouseHookEventArgsEx(MouseHookEventArgs args, HookEventCodec.EventType type)
     : base(args.Injected, args.Button, args.ClickCount, args.Location.X, args.Location.Y, args.MouseDelta, args.Alt, args.Control, args.Shift, args.CapsLock, args.NumLock, args.ScrollLock)
 {
     this._type = type;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="args">Original KeyHookEventArgs object</param>
 /// <param name="type">Type of event</param>
 /// <param name="pressedKeys">List of keys pressed simultaneously</param>
 /// <param name="pressedChar">Key chracter pressed</param>
 public KeyHookEventArgsEx(KeyHookEventArgs args, HookEventCodec.EventType type, List<System.Windows.Forms.Keys> pressedKeys, char pressedChar)
     : base((uint)args.KeyValue, pressedChar, args.Injected, args.Alt, args.Control, args.Shift, args.CapsLock, args.NumLock, args.ScrollLock)
 {
     this._type = type;
     if (pressedKeys == null)
         this._pressedKeys = new List<System.Windows.Forms.Keys>();
     else
         this._pressedKeys = pressedKeys;
 }
Ejemplo n.º 6
0
        public void DecodeEvent(int owner, byte[] data)
        {
            this._neuroLog.WriteFormat("Decode Event", "Owner: {0}\n\nData:\n{1}", owner, data);
            HookEventCodec.EventClass ec;
            HookEventCodec.EventType  et;
            HookEventArgs             ea;

            byte[] _b;
            char   _c;

            HookEventCodec.GetDecodedData(0, data, out ec, out et, out ea, out _b, out _c);
            if (ec == HookEventCodec.EventClass.KeyEvent)
            {
                KeyHookEventArgs ke = ea as KeyHookEventArgs;
                switch (et)
                {
                case HookEventCodec.EventType.KeyDown:
                    //Log.WriteLine("[KeyDown]->" + ke.KeyCode);
                    this._neuroLog.WriteFormat("Key Down", "Key Code: {0}", ke.KeyCode);
                    this._ki.KeyDown(ke.KeyCode);
                    break;

                case HookEventCodec.EventType.KeyPress:
                    //Log.WriteLine("[KeyPress]->" + ke.KeyCode);
                    this._neuroLog.WriteFormat("Key Press", "Key Code: {0}", ke.KeyCode);
                    this._ki.KeyPress(ke.KeyCode, ke.Alt, ke.Control, ke.Shift);
                    break;

                case HookEventCodec.EventType.KeyUp:
                    //Log.WriteLine("[KeyUp]->" + ke.KeyCode);
                    this._neuroLog.WriteFormat("Key Up", "Key Code: {0}", ke.KeyCode);
                    this._ki.KeyUp(ke.KeyCode);
                    break;
                }
            }
            else if (ec == HookEventCodec.EventClass.MouseEvent)
            {
                MouseHookEventArgs me = ea as MouseHookEventArgs;
                KeyHookEventArgs   ke = ea as KeyHookEventArgs;
                switch (et)
                {
                case HookEventCodec.EventType.MouseClick:
                    //Log.WriteLine("[Click]");
                    this._neuroLog.WriteFormat("Mouse Click", "Button: {0}\nCount: {1}", me.Button, me.ClickCount);
                    this._mi.MouseClick(me.Button, me.ClickCount);
                    break;

                case HookEventCodec.EventType.MouseDoubleClick:
                    //Log.WriteLine("[DoubleClick]");
                    this._neuroLog.WriteFormat("Mouse Double Click", "Button: {0}", me.Button);
                    this._mi.MouseDoubleClick(me.Button);
                    break;

                case HookEventCodec.EventType.MouseDown:
                    //Log.WriteLine("[MouseDown]");
                    this._neuroLog.WriteFormat("Mouse Down", "Button: {0}", me.Button);
                    this._mi.MouseDown(me.Button);
                    break;

                case HookEventCodec.EventType.MouseMove:
                    //int x = (int)(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width * (me.Location.X / Math.Pow(10, this.NormalizedPrecisionFactor)));
                    //int y = (int)(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height * (me.Location.Y / Math.Pow(10, this.NormalizedPrecisionFactor)));
                    int x = (int)(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width * ((ushort)me.Location.X / 65535.0f));
                    int y = (int)(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height * ((ushort)me.Location.Y / 65535.0f));
                    //this._neuroLog.WriteFormat("Mouse Move", "Normalized Location: {0}, {1}\nClient Location: {2}, {3}", me.Location.X, me.Location.Y, x, y);
                    //Log.WriteLine(String.Format("{0} -> {1}, {2} -> {3}", (ushort)me.Location.X, x, (ushort)me.Location.Y, y));

                    /*using (StreamWriter sw = new StreamWriter("log.txt",true))
                     * {
                     *  sw.WriteLine(String.Format("[{0},{1}] | {2}, {3}", me.Location.X.ToString(), me.Location.Y.ToString(), x.ToString(), y.ToString()));
                     * }*/
                    this._mi.MouseMove(x, y);
                    break;

                case HookEventCodec.EventType.MouseUp:
                    //Log.WriteLine("[MouseUp]");
                    this._neuroLog.WriteFormat("Mouse Up", "Button: {0}", me.Button);
                    this._mi.MouseUp(me.Button);
                    break;

                case HookEventCodec.EventType.MouseWheel:
                    //Log.WriteLine("[Scroll]");
                    this._neuroLog.WriteFormat("Mouse Scroll", "Amount: {0}", me.ScrollAmount);
                    this._mi.MouseScroll(me.ScrollAmount);
                    break;
                }
            }
        }
Ejemplo n.º 7
0
 void mh_MouseClicked(MouseHookEventArgs e)
 {
     //this.mouseLog.Enqueue(String.Format("[Mouse Click: {0} | {1},{2}]", e.Button, e.Location.X, e.Location.Y));
     this.mouseLog.Enqueue(HookEventCodec.GetEncodedData(HookEventCodec.EventClass.MouseEvent, HookEventCodec.EventType.MouseClick, e));
 }
Ejemplo n.º 8
0
 void mh_MouseWheel(MouseHookEventArgs e)
 {
     //this.mouseLog.Enqueue(String.Format("[Mouse Scroll: {0} | {1},{2}]", e.ScrollAmount, e.Location.X, e.Location.Y));
     this.mouseLog.Enqueue(HookEventCodec.GetEncodedData(HookEventCodec.EventClass.MouseEvent, HookEventCodec.EventType.MouseWheel, e));
 }