示例#1
0
 protected void SendCombination(EKeyCombination combination, int duration, Action callback)
 {
     if (!IsActive)
     {
         return;
     }
     ActionManager.SendAction(() => { KeyUtils.SendCombination(combination); }, duration, callback);
 }
示例#2
0
        private static ConcurrentQueue <Keyboard.ScanCodeShort> GetKeyCombinations(EKeyCombination keys)
        {
            ConcurrentQueue <Keyboard.ScanCodeShort> lst = new ConcurrentQueue <Keyboard.ScanCodeShort>();

            foreach (var key in _keyCombinations[keys])
            {
                lst.Enqueue(key);
            }
            return(lst);
        }
示例#3
0
        public static void SendCombination(EKeyCombination keys, Action callback = null)
        {
            if (WinUtils.GetActiveWindow() != WindowToSendKeysIn)
            {
                return;
            }

            if (!_keyCombinations.ContainsKey(keys))
            {
                Debug.Log("Key map does not contain combination: " + keys.ToString());
                return;
            }

            if (_currentCombination != null)
            {
                Debug.Log("A combination is already running");
                return;
            }

            _callbackMultipleKey = callback;
            _currentCombination  = GetKeyCombinations(keys);
            _timerCombination.Restart();
        }