예제 #1
0
 public override string ToString()
 {
     if ((modifiers == null) || (modifiers.Count() == 0))
     {
         return(String.Format("{0}", key.ToString()));
     }
     else
     {
         return(String.Format("{0} {1}", String.Join("-", modifiers), key.ToString()));
     }
 }
예제 #2
0
        // Token: 0x06000216 RID: 534 RVA: 0x01035324 File Offset: 0x01033524
        internal void method_0(VirtualKeyCode virtualKeyCode_0, KeyState keyState_0)
        {
            VirtualKeyCode virtualKeyCode = 162;

            if (Settings.Default.ModifierKey == 4)
            {
                virtualKeyCode = 16;
            }
            if (Settings.Default.ModifierKey == 1)
            {
                virtualKeyCode = 18;
            }
            if (RS6Menu.Class5.smethod_0(virtualKeyCode_0.ToString(), virtualKeyCode.ToString()))
            {
                if (keyState_0 != 2)
                {
                    if (keyState_0 != 3)
                    {
                        RS6Menu.Boolean_0 = false;
                        return;
                    }
                }
                RS6Menu.Boolean_0 = true;
                return;
            }
        }
예제 #3
0
        public void ApplyConfig()
        {
            string ConfigPath = "./Data/config.cfg";

            string[] lines = File.ReadAllLines(ConfigPath);
            var      done  = false;

            for (var i = 0; i < lines.Length; i++)
            {
                if (lines[i].StartsWith("#") == false && done == false)
                {
                    GreenKey  = (VirtualKeyCode)Convert.ToInt32(lines[i]);
                    RedKey    = (VirtualKeyCode)Convert.ToInt32(lines[++i]);
                    YellowKey = (VirtualKeyCode)Convert.ToInt32(lines[++i]);
                    BlueKey   = (VirtualKeyCode)Convert.ToInt32(lines[++i]);
                    OrangeKey = (VirtualKeyCode)Convert.ToInt32(lines[++i]);

                    GreenValue_l.Text  = GreenKey.ToString();
                    RedValue_l.Text    = RedKey.ToString();
                    YellowValue_l.Text = YellowKey.ToString();
                    BlueValue_l.Text   = BlueKey.ToString();
                    OrangeValue_l.Text = OrangeKey.ToString();
                    done = true;
                }
            }
        }
예제 #4
0
        public static String ConvertirWindowsKeyACodigo(Key formKeys)
        {
            VirtualKeyCode CodeOfKeyToEmulate = (VirtualKeyCode)KeyInterop.VirtualKeyFromKey(formKeys);
            String         keyString          = CodeOfKeyToEmulate.ToString();

            return(keyString);
        }
 /// <summary>
 /// Эмулирует действие 'отпустить' над кнопкой.
 /// </summary>
 /// <param name="keyCode">
 /// Ключ целевой кнопки.
 /// </param>
 public IKeyboard KeyUp(VirtualKeyCode keyCode)
 {
     this.logger.Info("Key up '{0}'", keyCode.ToString());
     this.keyboardSimulator.KeyUp(keyCode);
     Thread.Sleep(250);
     return this;
 }
 /// <summary>
 /// Эмулирует действие 'нажать и держать' над кнопкой.
 /// </summary>
 /// <param name="keyCode">
 /// Ключ целевой кнопки.
 /// </param>
 public IKeyboard KeyDown(VirtualKeyCode keyCode)
 {
     this.logger.Info("Key down '{0}'", keyCode.ToString());
     this.keyboardSimulator.KeyDown(keyCode);
     Thread.Sleep(250);
     return this;
 }
 /// <summary>
 /// Эмулирует действие 'нажать и держать' над кнопкой.
 /// </summary>
 /// <param name="keyCode">
 /// Ключ целевой кнопки.
 /// </param>
 public IKeyboard KeyDown(VirtualKeyCode keyCode)
 {
     this.logger.Info("Key down '{0}'", keyCode.ToString());
     this.keyboardSimulator.KeyDown(keyCode);
     Thread.Sleep(250);
     return(this);
 }
예제 #8
0
 private void OnPushKey(VirtualKeyCode key)
 {
     ALog.Debug("VirtualKeyCode={0}", key.ToString());
     if (key == VirtualKeyCode.DELETE && AUtil.IsStop(this.Recorder.State))
     {
         DeleteKey();
     }
 }
예제 #9
0
        public static String ConvertirFormsKeyACodigo(Keys formKeys)
        {
            System.Windows.Input.Key kW = (System.Windows.Input.Key)Enum.Parse(typeof(System.Windows.Input.Key), formKeys.ToString());
            VirtualKeyCode           CodeOfKeyToEmulate = (VirtualKeyCode)KeyInterop.VirtualKeyFromKey(kW);
            String keyString = CodeOfKeyToEmulate.ToString();

            return(keyString);
        }
예제 #10
0
 private static void OnInput(VirtualKeyCode key, bool isPressed, EventArgs args)
 {
     Console.WriteLine($"The key : {key.ToString()} isPressed: {isPressed.ToString()}");
     if (key == VirtualKeyCode.A)
     {
         m2Pressed = isPressed;
     }
 }
예제 #11
0
        public static void save_hook(Hook_target target, VirtualKeyCode vk)
        {
            XmlElement node = doc.DocumentElement;

            node.Attributes["Hook_target"].Value = target.ToString();
            node.Attributes["Hook_key"].Value    = vk.ToString();

            doc.Save(path_to_settings_file);
        }
예제 #12
0
        private void this_keyUp(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            VirtualKeyCode key = (VirtualKeyCode)e.KeyValue;

            Program.log.log("Key press down : " + key.ToString());
            e.Handled    = true;
            pressed[key] = false;
            client.sendKey(key, true);
        }
예제 #13
0
        /// <summary>
        /// Serialises this object to an XML string for saving.
        /// </summary>
        /// <returns></returns>
        public override string ToXml()
        {
            StringBuilder str = new StringBuilder();

            str.AppendLine("<MacroKeyDownEvent>");
            str.AppendLine("<VirtualKeyCode>" + VirtualKeyCode.ToString() + "</VirtualKeyCode>");
            str.AppendLine("</MacroKeyDownEvent>");

            return(str.ToString());
        }
예제 #14
0
        /// <summary>
        /// Serializes this object to an XML string for saving.
        /// </summary>
        /// <returns></returns>
        public override string ToXML()
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("<MacroKeyUpEvent>");
            sb.AppendLine("<VirtualKeyCode>" + VirtualKeyCode.ToString() + "</VirtualKeyCode>");
            sb.AppendLine("</MacroKeyUpEvent>");

            return(sb.ToString());
        }
예제 #15
0
    private object SetKeyboardInput(int keyCodeId)
    {
        VirtualKeyCode keyCode = (VirtualKeyCode)keyCodeId;

        _audioInput.MouseInput = MouseInput.None;
        _audioInput.Key        = keyCode;
        _inputData.text        = keyCode == VirtualKeyCode.NONAME ? "none" : keyCode.ToString().ToLower();
        SetParam(_audioInput.Param);
        return(UpdateAudioInput());
    }
예제 #16
0
        private void this_keyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            VirtualKeyCode key = (VirtualKeyCode)e.KeyValue;

            if (!pressed[key])
            {
                Program.log.log("Pressed : " + key.ToString());
                client.sendKey(key, false);
                pressed[key] = true;
            }
        }
예제 #17
0
        private void AddKeyButton(VirtualKeyCode key)
        {
            foreach (Button b in StackPanelKey.Children)
            {
                if (b.Content.ToString() == key.ToString())
                {
                    return;
                }
            }

            Button button = new Button()
            {
                Content = key.ToString()
            };

            button.Click += (s, eArgs) =>
            {
                StackPanelKey.Children.Remove(button);
            };

            StackPanelKey.Children.Add(button);
        }
예제 #18
0
        public void simulatePressWithTimer(VirtualKeyCode key, int duration)
        {
            InputSimulator.SimulateKeyDown(key);

            if (timedKeys.ContainsKey(key.ToString()))
            {
                if (timedKeys[key.ToString()] >= 0)
                {
                    timedKeys[key.ToString()] += duration;
                    return;
                }
                else
                {
                    timedKeys[key.ToString()] = duration;
                }
            }
            else
            {
                timedKeys.TryAdd(key.ToString(), duration);
            }

            context.logmMssage(key.ToString() + "  DOWN");
            new Thread(() => {
                while ((timedKeys[key.ToString()] > -1))
                {
                    Thread.Sleep(1000);

                    if (timedKeys[key.ToString()] > -1)
                    {
                        timedKeys[key.ToString()]--;
                    }
                }

                context.logmMssage(key.ToString() + "  UP");
                InputSimulator.SimulateKeyUp(key);
            }).Start();
        }
예제 #19
0
        private void MapButton_Click(object sender, EventArgs e) //Maping
        {
            mapping                   = !mapping;
            MappingTextbox.Text       = Convert.ToString(mapping);
            LastMidiEventTextbox.Text = LastMidiEventText;
            //new
            VirtualKeyCode meh = new VirtualKeyCode();

            //ictOfVirtualKeyCodes.Add(333,VirtualKeyCode.ACCEPT);
            //dictOfVirtualKeyCodes.TryGetValue(333, out meh);
            if (meh != null)
            {
                string wat = meh.ToString();
            }
            UpdateListView();
        }
예제 #20
0
        private static void PressKey(VirtualKeyCode key)
        {
            var delay = GetDeley(1000);



            var inputSimulator = new InputSimulator();

            while (Console.ReadKey(true).Key != ConsoleKey.Escape)
            {
                inputSimulator.Keyboard.KeyPress(key);
                Console.WriteLine("You pressed: " + key.ToString());
                delay.Wait();
            }
            Console.WriteLine("Exit");
        }
        /**
         * 執行功能
         */
        public void DoAction()
        {
            foreach (Key key in _keys)
            {
                KeyStates      state = key.State;
                VirtualKeyCode code  = key.Code;
                switch (state)
                {
                case KeyStates.Press:
                case KeyStates.Hold:
                    InputSimulator.SimulateKeyDown(code);
                    Console.WriteLine("Hold {0} key", code.ToString());
                    break;

                default:
                    break;
                }
            }

            foreach (Key key in _keys)
            {
                KeyStates      state = key.State;
                VirtualKeyCode code  = key.Code;
                switch (state)
                {
                case KeyStates.Press:
                case KeyStates.Release:
                    InputSimulator.SimulateKeyUp(code);
                    Console.WriteLine("Release {0} key", code.ToString());
                    break;

                default:
                    break;
                }
            }
        }
예제 #22
0
        /// <summary>
        ///     Get the name of a key, in the keyboard locale
        /// </summary>
        /// <param name="givenKey">VirtualKeyCode</param>
        /// <param name="doNotCare">bool, default true</param>
        /// <returns>string</returns>
        public static string VirtualCodeToLocaleDisplayText(VirtualKeyCode givenKey, bool doNotCare = true)
        {
            unsafe
            {
                const int  capacity         = 100;
                var        keyName          = stackalloc char[capacity];
                const uint numpad           = 55;
                uint       scancodeModifier = 0;

                var    virtualKey = givenKey;
                string keyString;
                int    nrCharacters;
                if (doNotCare)
                {
                    scancodeModifier |= DoNotCareLeftRight; // set "Do not care" bit

                    switch (virtualKey)
                    {
                    case VirtualKeyCode.LeftMenu:
                    case VirtualKeyCode.RightMenu:
                        virtualKey = VirtualKeyCode.Menu;
                        break;

                    case VirtualKeyCode.LeftControl:
                    case VirtualKeyCode.RightControl:
                        virtualKey = VirtualKeyCode.Control;
                        break;

                    case VirtualKeyCode.LeftShift:
                    case VirtualKeyCode.RightShift:
                        virtualKey = VirtualKeyCode.Shift;
                        break;
                    }
                }
                // Map virtual key codes to real keys
                switch (virtualKey)
                {
                case VirtualKeyCode.Multiply:
                    nrCharacters = GetKeyNameText(numpad << 16, keyName, 100);

                    keyString = new string(keyName, 0, nrCharacters).Replace("*", "").Trim().ToLower();
                    if (keyString.IndexOf("(", StringComparison.Ordinal) >= 0)
                    {
                        return("* " + keyString);
                    }
                    keyString = keyString.Substring(0, 1).ToUpper() + keyString.Substring(1).ToLower();
                    return(keyString + " *");

                case VirtualKeyCode.Divide:
                    nrCharacters = GetKeyNameText(numpad << 16, keyName, capacity);
                    keyString    = new string(keyName, 0, nrCharacters).Replace("*", "").Trim().ToLower();
                    if (keyString.IndexOf("(", StringComparison.Ordinal) >= 0)
                    {
                        return("/ " + keyString);
                    }
                    keyString = keyString.Substring(0, 1).ToUpper() + keyString.Substring(1).ToLower();
                    return(keyString + " /");
                }

                var keyboardLayout = GetKeyboardLayout(0);
                var scanCode       = MapVirtualKeyEx((uint)virtualKey, (uint)MapVkType.VkToVscEx, keyboardLayout);

                // No value found
                if (scanCode == 0)
                {
                    return(givenKey.ToString());
                }

                // because MapVirtualKey strips the extended bit for some keys
                switch (virtualKey)
                {
                case VirtualKeyCode.Left:
                case VirtualKeyCode.Up:
                case VirtualKeyCode.Right:
                case VirtualKeyCode.Down:     // arrow keys
                case VirtualKeyCode.Prior:
                case VirtualKeyCode.Next:     // page up and page down
                case VirtualKeyCode.End:
                case VirtualKeyCode.Home:
                case VirtualKeyCode.Insert:
                case VirtualKeyCode.Delete:
                case VirtualKeyCode.NumLock:
                    scancodeModifier |= Extended;     // set extended bit
                    break;

                case VirtualKeyCode.Print:     // PrintScreen
                    scanCode = 311;
                    break;

                case VirtualKeyCode.Pause:     // Pause
                    scanCode = 69;
                    break;
                }

                scanCode     = scanCode << 16;
                scanCode    |= scancodeModifier;
                nrCharacters = GetKeyNameText(scanCode, keyName, capacity);
                if (nrCharacters == 0)
                {
                    return(givenKey.ToString());
                }

                var visibleName = new string(keyName, 0, nrCharacters);
                if (visibleName.Length > 1)
                {
                    visibleName = visibleName.Substring(0, 1) + visibleName.Substring(1).ToLower();
                }
                return(visibleName);
            }
        }
 /// <summary>
 /// Эмулирует действие 'нажать и отпустить' над кнопкой.
 /// </summary>
 /// <param name="keyCode">
 /// Ключ целевой кнопки.
 /// </param>
 public void KeyPress(VirtualKeyCode keyCode)
 {
     this.logger.Info("Key press '{0}'", keyCode.ToString());
     this.keyboardSimulator.KeyPress(keyCode);
     Thread.Sleep(250);
 }
예제 #24
0
        public static string ToVKeyToString(VirtualKeyCode vkCode, bool withColorTag = false)
        {
            if (vkCode >= VirtualKeyCode.VK_0 && vkCode <= VirtualKeyCode.VK_9)
            {
                return(string.Format("{0}", (char)('0' + (vkCode - VirtualKeyCode.VK_0))));
            }
            else if (vkCode >= VirtualKeyCode.VK_A && vkCode <= VirtualKeyCode.VK_Z)
            {
                return(string.Format("{0}", (char)('A' + (vkCode - VirtualKeyCode.VK_A))));
            }
            else if (vkCode >= VirtualKeyCode.OEM_1 && vkCode <= VirtualKeyCode.OEM_102)
            {
                switch (vkCode)
                {
                case VirtualKeyCode.OEM_1: return(string.Format(";"));

                case VirtualKeyCode.OEM_PLUS: return(string.Format("+"));

                case VirtualKeyCode.OEM_COMMA: return(string.Format(","));

                case VirtualKeyCode.OEM_MINUS: return(string.Format("-"));

                case VirtualKeyCode.OEM_PERIOD: return(string.Format("."));

                case VirtualKeyCode.OEM_2: return(string.Format("/"));

                case VirtualKeyCode.OEM_3: return(string.Format("`"));

                case VirtualKeyCode.OEM_4:
                {
                    if (withColorTag)
                    {
                        return(string.Format("<fg {0}>[LBRACKET]</fg>", Preference.Instance.CommandKeyTextColor));
                    }
                    else
                    {
                        return(string.Format("[LBRACKET]"));
                    }
                }

                case VirtualKeyCode.OEM_5: return(string.Format("\\"));

                case VirtualKeyCode.OEM_6:
                {
                    if (withColorTag)
                    {
                        return(string.Format("<fg {0}>[RBRACKET]</fg>", Preference.Instance.CommandKeyTextColor));
                    }
                    else
                    {
                        return(string.Format("[RBRACKET]"));
                    }
                }

                case VirtualKeyCode.OEM_7: return(string.Format("'"));

                case VirtualKeyCode.OEM_8: return(string.Format(" "));

                case VirtualKeyCode.OEM_102: return(string.Format("\\"));
                }
                return(vkCode.ToString());
            }
            else
            {
                if (withColorTag)
                {
                    return(string.Format("<fg {1}>[{0}]</fg>", vkCode.ToString(), Preference.Instance.CommandKeyTextColor));
                }
                else
                {
                    return(string.Format("[{0}]", vkCode.ToString()));
                }
            }
        }
예제 #25
0
        /// <summary>
        /// Read memory values in .cfg file, whose name depends on the MD5 hash of the targeted exe.
        /// Mostly used for PC games
        /// </summary>
        /// <param name="GameData_Folder"></param>
        protected virtual void ReadGameDataFromMd5Hash(String GameData_Folder)
        {
            String ConfigFile = AppDomain.CurrentDomain.BaseDirectory + GameData_Folder + @"\" + _TargetProcess_Md5Hash + ".cfg";

            if (File.Exists(ConfigFile))
            {
                Logger.WriteLog("Reading game memory setting from " + ConfigFile);
                using (StreamReader sr = new StreamReader(ConfigFile))
                {
                    String line;
                    String FieldName = String.Empty;
                    line = sr.ReadLine();
                    while (line != null)
                    {
                        String[] buffer = line.Split('=');
                        if (buffer.Length > 1)
                        {
                            try
                            {
                                FieldName = "_" + buffer[0].Trim();
                                if (buffer[0].Contains("Nop"))
                                {
                                    NopStruct n = new NopStruct(buffer[1].Trim());
                                    this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, n);
                                    Logger.WriteLog(FieldName + " successfully set to following value : 0x" + n.MemoryOffset.ToString("X8") + "|" + n.Length.ToString());
                                }
                                else if (buffer[0].Contains("DIK"))
                                {
                                    HardwareScanCode sc = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), buffer[1].Trim());
                                    this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, sc);
                                    Logger.WriteLog(FieldName + " successfully set to following value :" + sc.ToString());
                                }
                                else if (buffer[0].Contains("VK"))
                                {
                                    VirtualKeyCode vk = (VirtualKeyCode)Enum.Parse(typeof(VirtualKeyCode), buffer[1].Trim());
                                    this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, vk);
                                    Logger.WriteLog(FieldName + " successfully set to following value :" + vk.ToString());
                                }
                                else
                                {
                                    UInt32 v = UInt32.Parse(buffer[1].Substring(3).Trim(), NumberStyles.HexNumber);
                                    this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, v);
                                    Logger.WriteLog(FieldName + " successfully set to following value : 0x" + v.ToString("X8"));
                                }
                            }
                            catch (Exception ex)
                            {
                                Logger.WriteLog("Error reading game data for " + FieldName + " : " + ex.Message.ToString());
                            }
                        }
                        line = sr.ReadLine();
                    }
                    sr.Close();
                }
            }
            else
            {
                Logger.WriteLog("File not found : " + ConfigFile);
            }
        }
예제 #26
0
 private void UpdateText()
 {
     if (_currentString.Length == 0)
     {
         _recordedText.text = "...";
         _sendableText.text = "none";
     }
     else
     {
         _recordedText.text = _currentString;
         _sendableText.text = _newKeyCode == VirtualKeyCode.NONAME ? "unbindable" : _newKeyCode.ToString().ToLower();
     }
 }
예제 #27
0
        private string vk_to_appropriate_string(VirtualKeyCode vk)
        {
            if (vk >= VirtualKeyCode.VK_0 && vk <= VirtualKeyCode.VK_Z)
            {
                return(vk.ToString()[3].ToString());
            }
            else if (vk >= VirtualKeyCode.NUMPAD0 && vk <= VirtualKeyCode.NUMPAD9)
            {
                return(vk.ToString()[0] + vk.ToString().Substring(1).ToLower());
            }
            else if (vk >= VirtualKeyCode.LEFT && vk <= VirtualKeyCode.DOWN)
            {
                return(vk.ToString()[0] + vk.ToString().Substring(1).ToLower() + " Arrow");
            }
            switch (vk)
            {
            case VirtualKeyCode.NUMLOCK:
                return("Num Lock");

            case VirtualKeyCode.CAPITAL:
                return("Caps Lock");

            case VirtualKeyCode.SCROLL:
                return("Scroll Lock");

            case VirtualKeyCode.LCONTROL:
            case VirtualKeyCode.RCONTROL:
                return((vk.ToString()[0] == 'L' ? "Left" : "Right") + " Ctrl");

            case VirtualKeyCode.LMENU:
            case VirtualKeyCode.RMENU:
                return((vk.ToString()[0] == 'L' ? "Left" : "Right") + " Alt");

            case VirtualKeyCode.LSHIFT:
            case VirtualKeyCode.RSHIFT:
                return((vk.ToString()[0] == 'L' ? "Left" : "Right") + " Shift");

            case VirtualKeyCode.PAUSE:
            case VirtualKeyCode.HOME:
            case VirtualKeyCode.END:
            case VirtualKeyCode.INSERT:
            case VirtualKeyCode.DELETE:
            case VirtualKeyCode.SPACE:
            case VirtualKeyCode.ESCAPE:
            case VirtualKeyCode.TAB:
                return(vk.ToString()[0] + vk.ToString().Substring(1).ToLower());

            case VirtualKeyCode.SNAPSHOT:
                return("Print Screen");

            case VirtualKeyCode.NEXT:
                return("Page Down");

            case VirtualKeyCode.PRIOR:
                return("Page Up");

            case VirtualKeyCode.RETURN:
                return("Enter");

            case VirtualKeyCode.BACK:
                return("Backspace");

            case VirtualKeyCode.OEM_1:
                return(":;");

            case VirtualKeyCode.OEM_2:
                return("?/");

            case VirtualKeyCode.OEM_3:
                return("~`");

            case VirtualKeyCode.OEM_4:
                return("{[");

            case VirtualKeyCode.OEM_5:
                return("|\\");

            case VirtualKeyCode.OEM_6:
                return("}]");

            case VirtualKeyCode.OEM_7:
                return("\" \'");

            case VirtualKeyCode.OEM_PLUS:
                return("+");

            case VirtualKeyCode.OEM_MINUS:
                return("-");

            case VirtualKeyCode.OEM_COMMA:
                return(",");

            case VirtualKeyCode.OEM_PERIOD:
                return(".");

            case VirtualKeyCode.CLEAR:
                return("Numpad Clear");

            case VirtualKeyCode.ADD:
                return("Numpad +");

            case VirtualKeyCode.SUBTRACT:
                return("Numpad -");

            case VirtualKeyCode.MULTIPLY:
                return("Numpad *");

            case VirtualKeyCode.DIVIDE:
                return("Numpad /");

            case VirtualKeyCode.DECIMAL:
                return("Numpad .");

            case VirtualKeyCode.MEDIA_PLAY_PAUSE:
                return("Play/Pause");

            case VirtualKeyCode.VOLUME_DOWN:
            case VirtualKeyCode.VOLUME_MUTE:
            case VirtualKeyCode.VOLUME_UP:
                return("Volume " + vk.ToString()[7] + vk.ToString().Substring(8).ToLower());

            case VirtualKeyCode.MBUTTON:
                return(mmb);

            case VirtualKeyCode.XBUTTON1:
                return(mb4);

            case VirtualKeyCode.XBUTTON2:
                return(mb5);

            default: break;
            }

            return(vk.ToString().ToUpper()[0] + vk.ToString().Substring(1).Replace('_', ' ').ToLower());
        }
예제 #28
0
        public void pisz(string klawisz)
        {
            VirtualKeyCode a = VirtualKeyCode.NONAME; // powinno być null

            switch (klawisz)
            {
            case "1":
                a = VirtualKeyCode.VK_1;
                break;

            case "2":
                a = VirtualKeyCode.VK_2;
                break;

            case "3":
                a = VirtualKeyCode.VK_3;
                break;

            case "4":
                a = VirtualKeyCode.VK_4;
                break;

            case "5":
                a = VirtualKeyCode.VK_5;
                break;

            case "6":
                a = VirtualKeyCode.VK_6;
                break;

            case "7":
                a = VirtualKeyCode.VK_7;
                break;

            case "8":
                a = VirtualKeyCode.VK_8;
                break;

            case "9":
                a = VirtualKeyCode.VK_9;
                break;

            case "0":
                a = VirtualKeyCode.VK_0;
                break;

            case "ADD":
                a = VirtualKeyCode.ADD;
                break;

            case "SUB":
                a = VirtualKeyCode.SUBTRACT;
                break;

            case "MUL":
                a = VirtualKeyCode.MULTIPLY;
                break;

            case "DIV":
                a = VirtualKeyCode.DIVIDE;
                break;

            case "DEC":
                a = VirtualKeyCode.DECIMAL;
                break;
            }



            IntPtr h = IntPtr.Zero;

            Process[] proc = Process.GetProcesses();
            foreach (Process p in proc)
            {
                if (p.MainWindowTitle.Contains("Notatnik"))
                {
                    Console.WriteLine(p.MainWindowTitle);
                    h = p.MainWindowHandle;
                }
            }

            SetForegroundWindow(h);



            InputSimulator v = new InputSimulator();

            outputFunc(a.ToString());
            v.Keyboard.KeyPress(a);
        }
예제 #29
0
 public Hotkey(VirtualKeyCode hotkey, VirtualKeyCode?modifierKey = null)
 {
     KeyValue    = hotkey.ToString();
     KeyCode     = (int)hotkey;
     ModifierKey = modifierKey;
 }
 /// <summary>
 /// Эмулирует действие 'нажать и отпустить' над кнопкой.
 /// </summary>
 /// <param name="keyCode">
 /// Ключ целевой кнопки.
 /// </param>
 public void KeyPress(VirtualKeyCode keyCode)
 {
     this.logger.Info("Key press '{0}'", keyCode.ToString());
     this.keyboardSimulator.KeyPress(keyCode);
     Thread.Sleep(250);
 }
예제 #31
0
        private void AddInputButton_Click(object sender, EventArgs e)
        {
            try
            {
                List <TimelineItem> tempItems = new List <TimelineItem>(); // it's a list because sometimes we need to add two events
                tempItems.Add(new TimelineItem());                         // there will always be one event added

                InputType tabType = (InputType)Enum.Parse(typeof(InputType), InputTypeTabs.SelectedTab.Text, true);

                switch (tabType)
                {
                case InputType.KeyCode:
                    if (!HardwareKeyCodeTabCheck.Checked)
                    {
                        VirtualKeyCode virtualKeyCode = (VirtualKeyCode)KeyCodeTabCombo.SelectedItem;

                        if (SplitKeyCodeTabCheck.Checked)
                        {
                            tempItems[0].name = tabType.ToString() + " - Pressed Down " + virtualKeyCode.ToString();
                            tempItems[0].func = createKeyCodeFunc(KeyPressType.Down, virtualKeyCode);

                            tempItems.Add(new TimelineItem());
                            tempItems[1].name = tabType.ToString() + " - Pressed Up " + virtualKeyCode.ToString();
                            tempItems[1].func = createKeyCodeFunc(KeyPressType.Up, virtualKeyCode);
                        }
                        else     // We just do a regular keypress
                        {
                            tempItems[0].name = tabType.ToString() + " - Pressed Down & Up " + virtualKeyCode.ToString();
                            tempItems[0].func = createKeyCodeFunc(KeyPressType.Press, virtualKeyCode);
                        }
                    }
                    else     // use hardware key input instead
                    {
                        Keyboard.ScanCodeShort scanCode = (Keyboard.ScanCodeShort)HardwareKeyCodeTabCombo.SelectedItem;

                        tempItems[0].name = tabType.ToString() + " - Hardware input " + scanCode.ToString();
                        tempItems[0].func = createHardwareKeyCodeFunc(scanCode);
                    }
                    break;

                case InputType.Mouse:
                    int            moveX          = (int)MoveXMouseTabInput.Value;
                    int            moveY          = (int)MoveYMouseTabInput.Value;
                    bool           moveAbsolute   = AbsoluteMouseTabCheck.Checked;
                    int            scrollHor      = (int)ScrollHorMouseTabInput.Value;
                    int            scrollVert     = (int)ScrollVertMouseTabInput.Value;
                    MouseClickType mouseClickType = (MouseClickType)MouseClickMouseTabCombo.SelectedItem;
                    int            xID            = (int)XIDMouseTabInput.Value;

                    tempItems[0].name = tabType.ToString() + " - ";
                    if (moveX != 0 || moveY != 0 || moveAbsolute)
                    {
                        tempItems[0].name += "Move " + (moveAbsolute? "to " : "by ") + moveX + "," + moveY + " ";
                    }
                    if (scrollHor != 0 || scrollVert != 0)
                    {
                        tempItems[0].name += "Scroll by " + scrollHor + "," + scrollVert + " ";
                    }
                    if (mouseClickType != MouseClickType.None)
                    {
                        tempItems[0].name += mouseClickType.ToString() + " ";
                        if (mouseClickType.ToString().Contains("X"))
                        {
                            tempItems[0].name += "button ID " + xID + " ";
                        }
                    }
                    if (moveX == 0 && moveY == 0 && !moveAbsolute && scrollHor == 0 && scrollVert == 0 && mouseClickType == MouseClickType.None)
                    {
                        throw new Exception("No mouse input configuration was made");
                    }

                    tempItems[0].func = createMouseFunc(moveX, moveY, moveAbsolute, scrollHor, scrollVert, mouseClickType, xID);
                    break;

                case InputType.String:
                    string message = StringTabInput.Text;
                    if (message.Length > 1000)
                    {
                        throw new Exception("String message too long");
                    }
                    tempItems[0].name = tabType.ToString() + " - \"" + message + "\"";
                    tempItems[0].func = createStringFunc(message);
                    break;

                case InputType.Delay:
                    int delay = (int)DelayTabInput.Value;
                    tempItems[0].name = tabType.ToString() + " - " + delay + "ms";
                    tempItems[0].func = createDelayFunc(delay);
                    break;

                default:
                    throw new Exception("Somehow, no input type tab was selected.");
                }

                TimelineList.Items.AddRange(tempItems.ToArray());
            }
            catch (Exception err)
            {
                Console.WriteLine("Error occurred when trying to add new input to timeline: {0}", err.Message);
            }
        }
예제 #32
0
        void SensorSkeletonFrameReady(AllFramesReadyEventArgs e)
        {
            SerialPort serialPort1 = new SerialPort("COM8", 9600);

            using (SkeletonFrame skeletonFrameData = e.OpenSkeletonFrame())
            {
                if (skeletonFrameData == null)
                {
                    return;
                }

                var allSkeletons = new Skeleton[skeletonFrameData.SkeletonArrayLength];
                skeletonFrameData.CopySkeletonDataTo(allSkeletons);

                foreach (Skeleton sd in allSkeletons)
                {
                    // If this skeleton is no longer being tracked, skip it
                    if (sd.TrackingState != SkeletonTrackingState.Tracked)
                    {
                        continue;
                    }

                    // If there is not already a gesture state map for this skeleton, then create one
                    if (!_gestureMaps.ContainsKey(sd.TrackingId))
                    {
                        var mapstate = new GestureMapState(_gestureMap);
                        _gestureMaps.Add(sd.TrackingId, mapstate);
                    }
                    var keycode = new VirtualKeyCode();
                    try
                    {
                        keycode = _gestureMaps[sd.TrackingId].Evaluate(sd, false, _bitmap.Width, _bitmap.Height);
                        GetWaitingMessages(_gestureMaps);
                    }
                    catch (NullReferenceException nre)
                    {
                        Console.WriteLine(nre.Message);
                    }

                    if (keycode != VirtualKeyCode.NONAME)
                    {
                        rtbMessages.AppendText("Gesture accepted from player " + sd.TrackingId + "\r");
                        rtbMessages.ScrollToCaret();
                        rtbMessages.AppendText("Command passed to System: " + keycode + "\r");
                        rtbMessages.ScrollToCaret();
                        //InputSimulator.SimulateKeyPress(keycode);
                        _gestureMaps[sd.TrackingId].ResetAll(sd);
                        serialPort1.Open();
                        if (serialPort1.IsOpen)
                        {
                            try
                            {
                                serialPort1.WriteLine(keycode.ToString().Substring(3, 1));
                                rtbMessages.AppendText("Command passed to Arduino: " + keycode.ToString().Substring(3, 1) + "\r");
                            }
                            catch (ArgumentOutOfRangeException aoore)
                            {
                                Console.WriteLine(aoore.Message);
                            }
                        }
                        else
                        {
                            rtbMessages.AppendText("Failed to pass command to Arduino.\r");
                        }
                        serialPort1.Close();
                    }

                    // This break prevents multiple player data from being confused during evaluation.
                    // If one were going to dis-allow multiple players, this trackingId would facilitate
                    // that feat.
                    PlayerId = sd.TrackingId;


                    if (_bitmap != null)
                    {
                        _bitmap = AddSkeletonToDepthBitmap(sd, _bitmap, true);
                    }
                }
            }
        }