Beispiel #1
0
        public override void DeSerialize(XData raw)
        {
            var keyArray    = (string[])(XStringArray)raw;
            var newKeyArray = new string[keyArray.Length];

            // replace bad keys
            for (int i = 0; i < keyArray.Length; ++i)
            {
                if (uint.TryParse(keyArray[i], out uint keyId) && keyId > MaxKey)
                {
                    newKeyArray[i] = KeyCodeConverter.GetKey(KeyPlaceHolder);
                }
                else
                {
                    newKeyArray[i] = keyArray[i];
                }
            }

            base.DeSerialize(new XStringArray("", newKeyArray));
            for (int i = 0; i < keyArray.Length; ++i)
            {
                var key = keyArray[i];
                if (!uint.TryParse(key, out uint extKey) || extKey < MaxKey)
                {
                    continue;
                }

                UpdatedKeyCodes[i] = extKey;
            }
            UpdateText();
            InvokeKeysChanged();
        }
Beispiel #2
0
        /// <summary>
        ///     Initializes the specified capture mouse move.
        /// </summary>
        /// <param name="captureMouseMove">if set to <c>true</c> [capture mouse move].</param>
        /// <param name="clearInjectedFlag">if set to <c>true</c> [clear injected flag].</param>
        /// <exception cref="InvalidOperationException">The " + nameof(InputManager) + " is already initialized.</exception>
        public void Initialize(bool captureMouseMove, bool clearInjectedFlag)
        {
            lock (_lockObject)
            {
                if (IsInitialized)
                {
                    throw new InvalidOperationException("The " + nameof(InputManager) + " is already initialized.");
                }

                _keyStateChangedCallbacks = new Dictionary <VirtualKeyCode, List <KeyStateChangedEventHandler> >();
                _keyStates = new Dictionary <VirtualKeyCode, KeyState>();

                foreach (KeyValuePair <VirtualKeyCode, string> pair in KeyCodeConverter.EnumerateVirtualKeyCodes())
                {
                    _keyStateChangedCallbacks.Add(pair.Key, new List <KeyStateChangedEventHandler>());
                    _keyStates.Add(pair.Key, KeyState.None);
                }

                _keyboardHook = new LowLevelKeyboardHook(clearInjectedFlag);
                _mouseHook    = new LowLevelMouseHook(captureMouseMove, clearInjectedFlag);

                _keyboardHook.OnKeyboardEvent += _keyboardHook_OnKeyboardEvent;
                _mouseHook.OnMouseEvent       += _mouseHook_OnMouseEvent;

                _keyboardHook.InstallHook();
                _mouseHook.InstallHook();

                IsInitialized = true;
            }
        }
Beispiel #3
0
    static void Main()
    {
        if (!SingleInstance.Start())
        {
            MessageBox.Show("This program is already started, check your task bar.");
            return;
        }

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        try
        {
            KeyCodeConverter.Start();
            PreferenceManager.Start();
            DatabaseManager.Start();
            MainForm mainForm = new MainForm();
            Application.Run(mainForm);
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
        }

        SingleInstance.Stop();
    }
Beispiel #4
0
 private static void InputManager_OnMouseEvent(VirtualKeyCode key, KeyState state, int x, int y)
 {
     if (state == KeyState.Up)
     {
         if (IsUp)
         {
             if (DateTime.Now.Subtract(UpDate).TotalSeconds < DoubleClickInterval)
             {
                 SendKeys.SendWait("^{c}");
                 SendKeys.SendWait("{TAB}");
                 SendKeys.SendWait("{TAB}");
                 SendKeys.SendWait("^{v}");
                 if (IsAutoEnter)
                 {
                     SendKeys.SendWait("{ENTER}");
                 }
             }
         }
         else
         {
             UpDate = DateTime.Now;
         }
         IsUp = !IsUp;
     }
     if (state == KeyState.Down || state == KeyState.Up)
     {
         Console.WriteLine("鼠标: " + KeyCodeConverter.ToString(key) + " - " + KeyStateConverter.ToString(state) + " - X: " + x + ", Y: " + y);
     }
 }
Beispiel #5
0
 private void DisplayRemainingRocketCount()
 {
     if (!DisplayRocketCount)
     {
         return;
     }
     if (cameraController == null)
     {
         return;
     }
     if (cameraController.activeCamera == null)
     {
         return;
     }
     if (cameraController.activeCamera.CamMode == FixedCameraBlock.Mode.FirstPerson)
     {
         if (playerGroupedRockets.TryGetValue(StatMaster.isMP ? PlayerMachine.GetLocal().Player.NetworkId : 0, out groupedRockets))
         {
             string textString = "";
             foreach (var group in groupedRockets)
             {
                 textString += KeyCodeConverter.GetKey(group.Key).ToString() + ": " + group.Value.Count + Environment.NewLine;
             }
             GUI.Box(counterRect, LanguageManager.Instance.CurrentLanguage.RemainingRockets + Environment.NewLine + textString, groupedRocketsCounterStyle);
         }
     }
 }
Beispiel #6
0
        private void InputManager_OnKeyboardEvent(VirtualKeyCode key, KeyState state)
        {
            string msg = "OnKeyboardEvent: " + KeyCodeConverter.ToString(key) + " - " + KeyStateConverter.ToString(state);

            this.AddMsg(msg);
            this.ShowMsg();
        }
        public void KeyDownAnywhere(object sender, KeyEventArgs e)
        {
            if (buttonBeingEdited == KeypadButton.None)
            {
                return;
            }

            Key key = e.Key == Key.System ? e.SystemKey : e.Key;

            switch (buttonBeingEdited)
            {
            case KeypadButton.Left:
                Keybinds.LeftButtonScanCode = KeyCodeConverter.FromScanCode(key).ScanCode;
                break;

            case KeypadButton.Right:
                Keybinds.RightButtonScanCode = KeyCodeConverter.FromScanCode(key).ScanCode;
                break;

            case KeypadButton.Side:
                Keybinds.SideButtonScanCode = KeyCodeConverter.FromScanCode(key).ScanCode;
                break;
            }

            if (!Keybinds.PushAllValues())
            {
                Console.WriteLine("Readback failed");
            }

            NotifyAllProperties();
        }
Beispiel #8
0
 KeyCode ToKey(string value)
 {
     if (!KeyCodeConverter.GetKey(value, out KeyCode code))
     {
         throw new Exception("Invalid key " + value); // should never happen
     }
     return(code);
 }
Beispiel #9
0
 private void KeyModCopyToClipboard_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (locked)
     {
         return;
     }
     PreferenceManager.Database.CopyToClipboardKeyModifier = KeyCodeConverter.GetAltKey(KeyModCopyToClipboard.SelectedIndex);
 }
Beispiel #10
0
 private void KeyModCaptureCombo_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (locked)
     {
         return;
     }
     PreferenceManager.Database.ScreenCopyColorKeyModifier = KeyCodeConverter.GetAltKey(KeyModCaptureCombo.SelectedIndex);
 }
Beispiel #11
0
        private void Settings_Load(object sender, EventArgs e)
        {
            locked = true;

            string[] colors = Enum.GetNames(typeof(JColorStyle));
            sThemeColor.Items.Clear();
            foreach (string str in colors)
            {
                if (!str.Equals("Default") && !str.Equals("Custom"))
                {
                    sThemeColor.Items.Add(str.Replace("_", " "));
                }
            }
            color = PreferenceManager.Database.ThemeColor;
            theme = PreferenceManager.Database.Theme;
            sThemeColor.SelectedItem = color.ToString();
            jTheme.SelectedItem      = theme.ToString();
            jColorSize.SelectedIndex = PreferenceManager.Database.ColorSize;

            string[] keys = Enum.GetNames(typeof(Keys));
            KeyCaptureCombo.Items.Clear();
            KeyCopyToClipboard.Items.Clear();

            foreach (string str in keys)
            {
                KeyCaptureCombo.Items.Add(str);
                KeyCopyToClipboard.Items.Add(str);
            }

            string[] keysmid = Enum.GetNames(typeof(JKeyModifiers));
            KeyModCaptureCombo.Items.Clear();
            KeyModCopyToClipboard.Items.Clear();
            foreach (string str in keysmid)
            {
                KeyModCaptureCombo.Items.Add(str);
                KeyModCopyToClipboard.Items.Add(str);
            }
            KeyModCaptureCombo.SelectedIndex    = KeyCodeConverter.GetAltIndex(PreferenceManager.Database.ScreenCopyColorKeyModifier);
            KeyModCopyToClipboard.SelectedIndex = KeyCodeConverter.GetAltIndex(PreferenceManager.Database.CopyToClipboardKeyModifier);


            KeyCaptureCombo.SelectedIndex             = KeyCodeConverter.GetIndex(PreferenceManager.Database.ScreenCopyColorKey);
            KeyCopyToClipboard.SelectedIndex          = KeyCodeConverter.GetIndex(PreferenceManager.Database.CopyToClipboardKey);
            ClipboardFormatingTypeCombo.SelectedIndex = PreferenceManager.Database.ClipboardFormatingType;
            FormatingTextBox.Text = PreferenceManager.Database.FormatTemplate;

            FormatingTextBox.Visible          = ClipboardFormatingTypeCombo.SelectedIndex == 5;
            ToggleAutoCopyToClipboard.Checked = PreferenceManager.Database.AutoCopyToClipboard;
            StayOnTop.Checked = PreferenceManager.Database.StayOnTop;
            locked            = false;
        }
Beispiel #12
0
        public KeyCode StringToKey(string code)
        {
            switch (code)
            {
            case "\\":
                return(KeyCode.Backslash);

            case "\"":
                return(KeyCode.Quote);

            default:
                return(KeyCodeConverter.StringToKey(code));
            }
        }
Beispiel #13
0
        public string KeyToString(KeyCode code)
        {
            switch (code)
            {
            case KeyCode.Backslash:
                return("\\");

            case KeyCode.Quote:
                return("\"");

            default:
                return(KeyCodeConverter.KeyToString(code));
            }
        }
 public override void Deserialize(DataReader reader)
 {
     ScreenCopyColorKeyModifier = KeyCodeConverter.GetAltKey(reader.ReadInt32());
     ScreenCopyColorKey         = KeyCodeConverter.GetKey(reader.ReadInt32());
     CopyToClipboardKey         = KeyCodeConverter.GetKey(reader.ReadInt32());
     CopyToClipboardKeyModifier = KeyCodeConverter.GetAltKey(reader.ReadInt32());
     ColorSize              = reader.ReadInt32();
     ThemeColor             = (JColorStyle)reader.ReadInt32();
     Theme                  = (JThemeStyle)reader.ReadInt32();
     FirstTime              = reader.ReadBoolean();
     AutoCopyToClipboard    = reader.ReadBoolean();
     StayOnTop              = reader.ReadBoolean();
     ClipboardFormatingType = reader.ReadInt32();
     FormatTemplate         = reader.ReadString();
 }
Beispiel #15
0
 public string SerializeKey(uint x)
 {
     if (x > MaxKey)
     {
         return(x.ToString());
     }
     try
     {
         return(KeyCodeConverter.GetKey((KeyCode)x));
     }
     catch
     {
         return(x.ToString());
     }
 }
Beispiel #16
0
        public static void Main(string[] args)
        {
            InputConverter converter                          = new InputConverter();
            string         convertSourceFile                  = "InputManager.asset";
            string         convertDestinationFile             = "InputManager.xml";
            string         defaultInputManagerDestinationFile = "InputManager_Generated.asset";
            string         keyConverterFile                   = "KeyCodeConverter.cs";
            string         keyConverterTemplate               = File.ReadAllText("key_code_converter_template.txt");

            converter.ConvertUnityInputManager(convertSourceFile, convertDestinationFile);
            converter.GenerateDefaultUnityInputManager(defaultInputManagerDestinationFile);
            KeyNameGenerator.GenerateKeyNames(keyConverterTemplate, keyConverterFile);

            Console.WriteLine("Your key is: {0}", KeyCodeConverter.KeyToString(KeyCode.Joystick1Button11));
        }
 public override void Serialize(DataWriter writer)
 {
     writer.Write(KeyCodeConverter.GetAltIndex(ScreenCopyColorKeyModifier));
     writer.Write(KeyCodeConverter.GetIndex(ScreenCopyColorKey));
     writer.Write(KeyCodeConverter.GetIndex(CopyToClipboardKey));
     writer.Write(KeyCodeConverter.GetAltIndex(CopyToClipboardKeyModifier));
     writer.Write(ColorSize);
     writer.Write((int)ThemeColor);
     writer.Write((int)Theme);
     writer.Write(FirstTime);
     writer.Write(AutoCopyToClipboard);
     writer.Write(StayOnTop);
     writer.Write(ClipboardFormatingType);
     writer.Write(FormatTemplate);
 }
Beispiel #18
0
 private void OnGUI()
 {
     if (iAmLockedByRocket && DisplayWarning)
     {
         if (cameraController != null)
         {
             if (cameraController.activeCamera != null)
             {
                 if (cameraController.activeCamera.CamMode == FixedCameraBlock.Mode.FirstPerson)
                 {
                     DrawBorder();
                     GUI.Box(warningRect, "Missile Alert", missileWarningStyle);
                 }
             }
         }
     }
     if (DisplayRocketCount)
     {
         if (cameraController != null)
         {
             if (cameraController.activeCamera != null)
             {
                 if (cameraController.activeCamera.CamMode == FixedCameraBlock.Mode.FirstPerson)
                 {
                     if (playerGroupedRockets.TryGetValue(StatMaster.isMP ? PlayerMachine.GetLocal().Player.NetworkId : 0, out Dictionary <KeyCode, HashSet <TimedRocket> > groupedRockets))
                     {
                         string textString = "";
                         foreach (var group in groupedRockets)
                         {
                             textString += KeyCodeConverter.GetKey(group.Key).ToString() + ": " + group.Value.Count + Environment.NewLine;
                         }
                         GUI.Box(counterRect, LanguageManager.remainingRockets + Environment.NewLine + textString, groupedRocketsCounterStyle);
                     }
                 }
             }
         }
     }
 }
Beispiel #19
0
        public KeyCode OnGUI(Rect position, string label, KeyCode key)
        {
            GUI.SetNextControlName(m_controlName);
            bool hasFocus = (GUI.GetNameOfFocusedControl() == m_controlName);

            if (!m_isEditing && hasFocus)
            {
                m_keyString = key == KeyCode.None ? "" : KeyCodeConverter.KeyToString(key);
            }

            m_isEditing = hasFocus;
            if (m_isEditing)
            {
                m_keyString = EditorGUI.TextField(position, label, m_keyString);
            }
            else
            {
                EditorGUI.TextField(position, label, key == KeyCode.None ? "" : KeyCodeConverter.KeyToString(key));
            }

            if (m_isEditing && Event.current.type == EventType.KeyUp)
            {
                key = KeyCodeConverter.StringToKey(m_keyString);
                if (key == KeyCode.None)
                {
                    m_keyString = "";
                }
                else
                {
                    m_keyString = KeyCodeConverter.KeyToString(key);
                }
                m_isEditing = false;
            }

            return(key);
        }
Beispiel #20
0
        public IEnumerable <uint> ParseText(string value, uint[] origKeys)
        {
            var keyParts = value.Split(';');
            var cnt      = keyParts.Length > origKeys.Length ? origKeys.Length : keyParts.Length;

            for (int i = 0; i < cnt; ++i)
            {
                if (uint.TryParse(keyParts[i], out uint val))
                {
                    yield return(val);
                }
                else
                {
                    if (KeyCodeConverter.GetKey(keyParts[i], out KeyCode code))
                    {
                        yield return((uint)code);
                    }
                    else
                    {
                        yield return(origKeys[i]);
                    }
                }
            }
        }
        private void Initialize(bool captureMouseMove, bool clearInjectedFlag)
        {
            // initialize vars
            lockObject = new object();

            mapKeyState = new Dictionary <VirtualKeyCode, KeyState>();

            foreach (var pair in KeyCodeConverter.EnumerateVirtualKeyCodes())
            {
                mapKeyState.Add(pair.Key, KeyState.None);
            }

            singleKeyCallback = new Dictionary <VirtualKeyCode, List <KeyStateChangedCallback> >();

            // initialize hooks
            keyboardHook = new LowLevelKeyboardHook(clearInjectedFlag);
            mouseHook    = new LowLevelMouseHook(captureMouseMove, clearInjectedFlag);

            keyboardHook.OnKeyboardEvent += KeyboardHook_OnKeyboardEvent;
            mouseHook.OnMouseEvent       += MouseHook_OnMouseEvent;

            keyboardHook.InstallHook();
            mouseHook.InstallHook();
        }
        public KeyCode OnGUI(string label, KeyCode key)
        {
            GUI.SetNextControlName(m_controlName);
            bool hasFocus = (GUI.GetNameOfFocusedControl() == m_controlName);
            if(!m_isEditing && hasFocus)
                m_keyString = Key2String(key);

            m_isEditing = hasFocus;

            if(m_isEditing)
                m_keyString = EditorGUILayout.TextField(label, m_keyString);
            else
                EditorGUILayout.TextField(label, Key2String(key));

            if(m_isEditing && Event.current.type == EventType.KeyUp)
            {
                key = KeyCodeConverter.StringToKey(m_keyString);

                m_keyString = Key2String(key);
                m_isEditing = false;
            }

            return key;
        }
 string Key2String(KeyCode key)
 {
     return key == KeyCode.None ? "" : KeyCodeConverter.KeyToString(key);
 }
Beispiel #24
0
 private static void InputManager_OnKeyboardEvent(VirtualKeyCode key, KeyState state)
 {
     Console.WriteLine("键盘: " + KeyCodeConverter.ToString(key) + " - " + KeyStateConverter.ToString(state));
 }
Beispiel #25
0
 bool IsKey(string value)
 {
     return(KeyCodeConverter.GetKey(value, out KeyCode code));
 }
 private static KeyCode ConvertUnityKeyCode(object value) => value != null?KeyCodeConverter.StringToKey(value.ToString()) : KeyCode.None;
Beispiel #27
0
 private static void InputManager_OnMouseEvent(VirtualKeyCode key, KeyState state, int x, int y)
 {
     // x and y may be 0 if there is no data
     Console.WriteLine("OnMouseEvent: " + KeyCodeConverter.ToString(key) + " - " + KeyStateConverter.ToString(state) + " - X: " + x + ", Y: " + y);
 }
Beispiel #28
0
 private static void InputManager_KeyStateChanged(VirtualKeyCode key, KeyState state)
 {
     // you may use the same callback for every key or define a new one for each
     Console.WriteLine("The key state of " + KeyCodeConverter.ToString(key) + " changed to " + KeyStateConverter.ToString(state));
 }