Esempio n. 1
0
        public bool IsKeyToggled(DIKCode keyCode)
        {
            if (!keyInScope)
            {
                return(false);
            }

            return((pressedKeys[(int)keyCode] & 1) != 0);
        }
Esempio n. 2
0
        public void SetToggleState(DIKCode keyCode, bool toggled)
        {
            if (toggled)
            {
                pressedKeys[(int)keyCode] |= 1;
            }

            else
            {
                pressedKeys[(int)keyCode] &= 0xFD;
            }
        }
Esempio n. 3
0
 /// <summary>
 /// tries Parse an integer representing a DIK code to its representing enum value.
 /// </summary>
 /// <param name="code">The integer code.</param>
 /// <param name="dik">The variable to assign the dik code.</param>
 /// <returns></returns>
 public static bool TryParse(int code, out DIKCode dik)
 {
     try
     {
         dik = (DIKCode)code;
         return(true);
     }
     catch (InvalidCastException)
     {
         dik = DIKCode.NONE;
         return(false);
     }
 }
Esempio n. 4
0
        /// <summary>
        /// Set the state of the given key code.
        /// </summary>
        /// <param name="code"></param>
        /// <param name="pressed"></param>
        public static void SetKeyState(DIKCode code, bool pressed)
        {
            int scode = (int)code;

            // Move the DIK entension flag to a higher byte
            // ex: DIK_RCONTROL (bin 1001 1100) -> bin 1 0001 1100
            scode = (scode & 0x80) << 1 | scode & 0x7F;

            string state = pressed ? "down" : "up";
            string cmd   = "send {{sc{0:X3} {1}}}";

            ahk.ExecRaw(string.Format(cmd, scode, state));
        }
Esempio n. 5
0
        public bool WasKeyPressed(DIKCode keyCode)
        {
            if (!keyInScope)
            {
                return(false);
            }

            int val = pressedKeys[(int)keyCode] & 4;

            pressedKeys[(int)keyCode] &= 3;

            return(val == 4);
        }
Esempio n. 6
0
        public DIKCode[] GetPressedKeys()
        {
            if (!keyInScope)
            {
                return new DIKCode[] { }
            }
            ;

            var pressed = new List <DIKCode>();

            for (int i = 0; i < pressedKeys.Length; i++)
            {
                DIKCode dik = (DIKCode)i;
                if (IsKeyPressed(dik))
                {
                    pressed.Add(dik);
                }
            }

            return(pressed.ToArray());
        }
Esempio n. 7
0
 /// <summary>
 /// Test if the given key was put down before the call. Use it in loops to toggle stuff.
 /// </summary>
 /// <param name="keyCode">The key code.</param>
 /// <returns></returns>
 public static bool OnKeyDown(DIKCode keyCode)
 {
     return(SafeInvoke(f => f.WasKeyPressed(keyCode)));
 }
Esempio n. 8
0
 /// <summary>
 /// Set the toggled state of a given key. This does NOT simulate a key press.
 /// </summary>
 /// <param name="keyCode">The key code.</param>
 /// <param name="toggled">The state of the key.</param>
 public static void SetToggledFlag(DIKCode keyCode, bool toggled)
 {
     SafeInvoke(f => f.SetToggleState(keyCode, toggled));
 }
Esempio n. 9
0
 /// <summary>
 /// Test if the given key is toggled.
 /// </summary>
 /// <param name="keyCode">The key code.</param>
 /// <returns></returns>
 public static bool IsKeyToggled(DIKCode keyCode)
 {
     return(SafeInvoke(f => f.IsKeyToggled(keyCode)));
 }
Esempio n. 10
0
 /// <summary>
 /// Simulate a keypress on the given key.
 /// </summary>
 /// <param name="code">The key code.</param>
 /// <param name="pressTimeMS">The time the key will be pressed.</param>
 public static void PressKey(DIKCode code, int pressTimeMS)
 {
     SetKeyState(code, true);
     Thread.Sleep(pressTimeMS);
     SetKeyState(code, false);
 }
Esempio n. 11
0
 /// <summary>
 /// Simulate a keypress on the given key.
 /// </summary>
 /// <param name="code">The key code.</param>
 public static void PressKey(DIKCode code)
 {
     PressKey(code, 20);
 }
Esempio n. 12
0
 /// <summary>
 /// Create an input binding from a key.
 /// </summary>
 /// <param name="key"></param>
 public InputBinding(DIKCode key)
 {
     KeyBinding   = key;
     MouseBinding = MouseCode.None;
 }
Esempio n. 13
0
 /// <summary>
 /// Create an input binding from a key and a mouse button.
 /// </summary>
 /// <param name="key"></param>
 /// <param name="btn"></param>
 public InputBinding(DIKCode key, MouseCode btn)
 {
     KeyBinding   = key;
     MouseBinding = btn;
 }