public async Task ChangeKeyStatus(string key, KeyStatus status, string adminId, string comment)
        {
            var client = await GetClient();

            var serialResult = await client.GetAsync <SerialKey>(key);

            if (!serialResult.Found)
            {
                throw new InvalidOperationException("Serial key not found in the database.");
            }

            var serial = serialResult.Source;

            if (serial.Status == KeyStatus.Revoked)
            {
                throw new InvalidOperationException("Serial key already revoked");
            }
            var oldStatus = serial.Status;

            serial.Status = status;
            serial.AuditTrack.Add(new AuditEntry {
                Action = $"Changed status from {oldStatus} to {status}", Author = adminId, Comment = comment, Date = DateTime.UtcNow
            });

            var result = await client.IndexAsync(serial);

            if (!result.IsValid)
            {
                throw new InvalidOperationException($"Failed to change key status : {result.ServerError.Error.Reason}");
            }
        }
Exemple #2
0
        public static void OperateKey(User32.VirtualKey virtualKey, KeyStatus keyStatus)
        {
            // keybd_event
            //第一个参数:虚拟键码
            //第二个参数:硬件扫描码,一般设置为0即可;
            //第三个参数:函数操作的一个标志位,如果值为KEYEVENTF_EXTENDEDKEY则该键被按下,也可设置为0即可,如果值为KEYEVENTF_KEYUP则该按键被释放;
            //第四个参数:定义与击键相关的附加的32位值,一般设置为0即可。
            switch (keyStatus)
            {
            case KeyStatus.Press:
                User32.keybd_event(virtualKey.ToByte(), 0, User32.KEYEVENTF.KEYEVENTF_UNICODE, IntPtr.Zero);
                Thread.Sleep(TimeSpan.FromMilliseconds(50));
                break;

            case KeyStatus.Release:
                User32.keybd_event(virtualKey.ToByte(), 0, User32.KEYEVENTF.KEYEVENTF_KEYUP, IntPtr.Zero);
                Thread.Sleep(TimeSpan.FromMilliseconds(50));
                break;

            case KeyStatus.Click:
                User32.keybd_event(virtualKey.ToByte(), 0, User32.KEYEVENTF.KEYEVENTF_UNICODE, IntPtr.Zero);
                Thread.Sleep(TimeSpan.FromMilliseconds(50));
                User32.keybd_event(virtualKey.ToByte(), 0, User32.KEYEVENTF.KEYEVENTF_KEYUP, IntPtr.Zero);
                Thread.Sleep(TimeSpan.FromMilliseconds(50));
                break;

            default:
                break;
            }
        }
Exemple #3
0
 public ButtonEventArgs(bool pressed, int x, int y, KeyStatus status)
 {
     this.Pressed = pressed;
     this.X       = x;
     this.Y       = y;
     this.Status  = status;
 }
Exemple #4
0
 private void OnEnable()
 {
     keyEnabled = inputMapper.GetEnabledState();
     inputMapper.SetEnableGroup(AbstractKeyGroup.None);
     popupController.entry = entry;
     popupController.Show();
 }
        private IntPtr KeyboardHookCallback(int nCode, IntPtr wParam, ref KBDLLHOOKSTRUCT lParam)
        {
            bool allowContinue = true;

            KeyStatus keyStatus = KeyStatus.None;

            if (nCode >= 0 && (wParam == (IntPtr)WM_KEYUP || wParam == (IntPtr)WM_SYSKEYUP || wParam == (IntPtr)WM_KEYDOWN || wParam == (IntPtr)WM_SYSKEYDOWN))
            {
                if (wParam == (IntPtr)WM_KEYUP || wParam == (IntPtr)WM_SYSKEYUP)
                {
                    keyStatus = KeyStatus.Up;
                }
                else if (wParam == (IntPtr)WM_KEYDOWN || wParam == (IntPtr)WM_SYSKEYDOWN)
                {
                    keyStatus = KeyStatus.Down;
                }

                allowContinue = HandleKey(new KeyPress(lParam.vkCode, keyStatus));
            }

            if (allowContinue)
            {
                return(NativeMethods.CallNextHookEx(_keyboardHookID, nCode, wParam, ref lParam));
            }

            return((System.IntPtr) 1);
        }
Exemple #6
0
        public override bool OnKeyMessage(FuntionShortCutSlotIndex index, KeyStatus status)
        {
            if (m_wndView == null)
            {
                return(false);
            }

            if (index == FuntionShortCutSlotIndex.DragonBall && status == KeyStatus.Down)
            {
                if (IsForbitBall())
                {
                    return(false);
                }

                if (!m_wndView.IsVisible())
                {
                    m_wndView.SetVisible(true);
                }
                else
                {
                    m_wndView.SetVisible(false);
                    m_wndView.ChangeDragonBallToFirstPage();
                }
            }

            return(true);
        }
        /// <summary>
        /// 判断一个功能的对应键是否处于某个状态
        /// </summary>
        /// <param name="ks">状态</param>
        /// <param name="kc">功能</param>
        /// <returns></returns>
        public static bool GetKey <T>(KeyStatus ks, T kc)
        {
            if (!typeof(T).IsEnum)
            {
                throw new System.ArgumentException("Please use Enum for Key!");
            }

            KeyCode inputKey;
            bool    isContainThisKey = CurrrentKeymap.TryGetValue((int)(object)kc, out inputKey);
            bool    result           = false;

            if (isContainThisKey)
            {
                switch (ks)
                {
                case KeyStatus.Push: result = Input.GetKeyDown(inputKey); break;

                case KeyStatus.Release: result = Input.GetKeyUp(inputKey); break;

                case KeyStatus.On: result = Input.GetKey(inputKey); break;

                default: break;
                }
            }
            return(result);
        }
Exemple #8
0
        public override bool OnKey(Key key, KeyStatus status, Vector2 mousePos)
        {
            if (key == Key.MouseKeyLeft)
            {
                if (status == KeyStatus.Down)
                {
                    if (_selector?.Bounds.ContainsInclusive(mousePos) ?? false)
                    {
                        _dragging = mousePos - _selector.Position2;
                    }
                    else
                    {
                        _dragging = Vector2.One;
                    }

                    OnMouseMove(mousePos);
                }
                else if (status == KeyStatus.Up)
                {
                    _dragging = Vector2.Zero;
                }
            }

            if (ScrollParent != null)
            {
                return(ScrollParent.OnKey(key, status, mousePos));
            }

            return(base.OnKey(key, status, mousePos));
        }
Exemple #9
0
        // 按键消息
        public bool OnKeyMessage(FuntionShortCutSlotIndex index, KeyStatus status)
        {
            if (m_keyMessageList == null)
            {
                return(false);
            }

            if (index == FuntionShortCutSlotIndex.Exit && status == KeyStatus.Down)
            {
                OnPressCloseKey();
                return(true);
            }

            List <IUIWnd> list;

            if (m_keyMessageList[(int)status].TryGetValue(index, out list))
            {
                // 先复制一份以防目标在OnKeyMessage中改变订阅list
                IUIWnd[] tempList = new IUIWnd[list.Count];
                list.CopyTo(tempList);
                for (int i = 0; i < tempList.Length; ++i)
                {
                    if (tempList[i].OnKeyMessage(index, status))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemple #10
0
        public KeyInfo(
            Uid id,
            long ownerId,
            string name,
            KeyDataFormat format,
            byte[] data,
            JsonObject aad,
            Uid kekId,
            DateTime?activated = null,
            KeyType type       = KeyType.Secret,
            KeyStatus status   = KeyStatus.Active)
        {
            Ensure.IsValidId(ownerId, nameof(ownerId));
            Ensure.NotNullOrEmpty(name, nameof(name));
            Ensure.NotNullOrEmpty(data, nameof(data));

            Id        = id;
            OwnerId   = ownerId;
            Name      = name;
            Format    = format;
            Data      = data;
            Aad       = aad;
            KekId     = kekId;
            Activated = activated;
            Status    = status;
        }
Exemple #11
0
        private void UpdateButtonStatus(ButtonType type, ref float keyDownTime, ref KeyStatus status)
        {
            if (null == mController)
            {
                return;
            }

            if (mController.IsButtonDown(type))
            {
                keyDownTime = Time.realtimeSinceStartup;
                status      = KeyStatus.KeyDown;
            }
            else if (mController.IsButtonPressed(type))
            {
                status = KeyStatus.KeyPressed;
            }
            else if (mController.IsButtonUp(type))
            {
                status = KeyStatus.KeyUp;
            }
            else
            {
                status = KeyStatus.KeyRelease;
            }
        }
Exemple #12
0
        private static int HookProcedureCallback(int nCode, IntPtr wParam, IntPtr lParam)
        {
            RefreshSlideViewWindowHandle();
            //Only process inputs that are sent to the main slide view window.
            if (!IsSlideViewWindowFocused())
            {
                return(Native.CallNextHookEx(0, nCode, wParam, lParam));
            }

            bool blockInput = false;

            if (nCode == 0)
            {
                int keyIndex = wParam.ToInt32();
                if (_keyStatuses.ContainsKey(keyIndex))
                {
                    KeyStatus keyStatus = _keyStatuses[keyIndex];
                    if (IsKeydownCommand(lParam))
                    {
                        if (!keyStatus.IsPressed)
                        {
                            keyStatus.Press();
                        }

                        foreach (BindedAction action in _keyDownActions[keyIndex])
                        {
                            bool block = action.RunConditionally(keyStatus);
                            if (block)
                            {
                                blockInput = true;
                            }
                        }
                    }
                    else
                    {
                        if (keyStatus.IsPressed)
                        {
                            foreach (BindedAction action in _keyUpActions[keyIndex])
                            {
                                bool block = action.RunConditionally(keyStatus);
                                if (block)
                                {
                                    blockInput = true;
                                }
                            }
                            keyStatus.Release();
                        }
                    }
                }
            }

            if (blockInput)
            {
                return(1);
            }
            else
            {
                return(Native.CallNextHookEx(0, nCode, wParam, lParam));
            }
        }
Exemple #13
0
        // 订阅按键消息
        public bool RegisterKeyMessage(FuntionShortCutSlotIndex index, KeyStatus status, IUIWnd wnd)
        {
            if (m_keyMessageList == null || m_keyMessageList[(int)status] == null || wnd == null)
            {
                return(false);
            }

            List <IUIWnd> list;

            if (m_keyMessageList[(int)status].TryGetValue(index, out list))
            {
                for (int i = 0; i < list.Count; ++i)
                {
                    if (list[i] == wnd)
                    {
                        return(false);
                    }
                }

                list.Add(wnd);
            }
            else
            {
                list = new List <IUIWnd>();
                list.Add(wnd);

                m_keyMessageList[(int)status][index] = list;
            }
            return(true);
        }
Exemple #14
0
        private void SwapKeyStatus()
        {
            var tmp = keyStatusLastFrame;

            keyStatusLastFrame = keyStatus;
            keyStatus          = tmp;
        }
Exemple #15
0
 public FindInfo(KeyStatus keyStatus, string name, string path, string key)
 {
     KeyStatus = keyStatus;
     Name      = name;
     Path      = path;
     Key       = key;
 }
Exemple #16
0
    private void activateSuccess()
    {
        Debug.Log("called activated");
        this.GetComponentInChildren <Pattern>().enabled = false;
        ActivatedClip.Play();
        HintBall.SetActive(false);
        status = KeyStatus.Active;
        //ActiveBall.GetComponent<ParticleSystem>().Play(true);
        ActiveBall.SetActive(true);
        curOnLitFrame = 0;
        int id = 0;

        foreach (GameObject lightObj in Lights)
        {
            lightObj.GetComponentInChildren <Light>().enabled = true;
            Renderer[] curRenderers = lightObj.GetComponentsInChildren <Renderer>();
            for (int i = 0; i < curRenderers.Length; i++)
            {
                Material[] srcRenderers = (Material[])onLightMaterial[id];
                curRenderers[i].materials = srcRenderers;
                //Debug.Log(srcRenderers[0].name);
                //Debug.Log(srcRenderers[1].name);
                id++;
            }
        }
        this.GetComponent <KeyCharacterController>().LeaveKey();
        GameObject.Find("Character").GetComponent <Character>().ConsumeDurability();
        this.GetComponent <InteractiveObj>().textContents[0] = "";
        //for(int i = 0; i < formerKeys.Length; i++)
        //    Showline(this.gameObject, formerKeys[i]);
        //if(targetDoor!=null)
        //   Showline(targetDoor, this.gameObject);
        //return "Activated";
    }
Exemple #17
0
 public bool IsKeyStatus(KeyStatus keyStatus, Keys keyCode)
 {
     if (inputStatus.ContainsKey(keyCode) == false)
     {
         return(false);
     }
     return(inputStatus[keyCode] == keyStatus);
 }
 public bool RunConditionally(KeyStatus keyStatus)
 {
     if (_ctrl == keyStatus.Ctrl && _shift == keyStatus.Shift && _alt == keyStatus.Alt)
     {
         return _executeAction();
     }
     return false;
 }
Exemple #19
0
 public override bool OnKey(Key key, KeyStatus status, Vector2 mousePos)
 {
     if (key == Key.MouseKeyLeft && status == KeyStatus.Down)
     {
         OnClickedProxy?.Invoke(this);
     }
     return(base.OnKey(key, status, mousePos));
 }
Exemple #20
0
        public KeyInput(KeyCode RawKey, bool?Extended, int ScanCode, KeyStatus Status)  : base(RawKey, Extended)
        {
            this.ScanCode = ScanCode;
            this.Status   = Status;


            Initialize(CreateChildren());
        }
Exemple #21
0
 public KeyCombination(KeyCode[] keys, KeyStatus status)
 {
     foreach (KeyCode key in this.combination)
     {
         this.combination.Add(key);
     }
     this.status = status;
 }
Exemple #22
0
 public bool RunConditionally(KeyStatus keyStatus)
 {
     if (_ctrl == keyStatus.Ctrl && _shift == keyStatus.Shift && _alt == keyStatus.Alt)
     {
         return(_executeAction());
     }
     return(false);
 }
Exemple #23
0
        public override bool OnKeyMessage(FuntionShortCutSlotIndex index, KeyStatus status)
        {
            if (index == FuntionShortCutSlotIndex.OpenMailBox && status == KeyStatus.Down)
            {
                UpdateMailBox();
            }

            return(true);
        }
Exemple #24
0
        /// <summary>
        /// Sets the status of the specified Spectrum keyboard key.
        /// </summary>
        /// <param name="keyStatus">Status of the key to set</param>
        public void SetStatus(KeyStatus keyStatus)
        {
            var lineIndex = (byte)keyStatus.KeyCode / 5;
            var lineMask  = 1 << (byte)keyStatus.KeyCode % 5;

            _lineStatus[lineIndex] = keyStatus.IsDown
                ? (byte)(_lineStatus[lineIndex] | lineMask)
                : (byte)(_lineStatus[lineIndex] & ~lineMask);
        }
Exemple #25
0
        public void NotifyKeyStatus(VirtualKeyCode keyCode, KeyStatus status)
        {
            var bytes = new byte[2];

            bytes[0] = (byte)status;
            bytes[1] = (byte)keyCode;
            GattServerCharacteristic.Value = bytes;
            NotifyAll();
        }
Exemple #26
0
 private void UpdateKeyStatus(Keys keyCode, KeyStatus keyStatus)
 {
     if (inputStatus.ContainsKey(keyCode) == false)
     {
         inputStatus.Add(keyCode, keyStatus);
         return;
     }
     inputStatus[keyCode] = keyStatus;
 }
Exemple #27
0
 public ImportKey()
 {
     this.IsCommand("importkey", Localized.ImportKey);
     this.HasRequiredOption("l|location=", Localized.Location, v => { _location = v; });
     this.HasRequiredOption("i|importlocation=", Localized.ImportLocation, v => { _importLocation = v; });
     this.HasRequiredOption("s|status=", Localized.Status, v => { _status = v; });
     this.HasOption("c|crypter=", Localized.Crypter, v => { _crypterLocation = v; });
     this.HasOption("p|password", Localized.Password, v => { _password = true; });
     this.SkipsCommandSummaryBeforeRunning();
 }
Exemple #28
0
 public AddKey()
 {
     this.IsCommand("addkey", Localized.AddKey);
     this.HasRequiredOption("l|location=", Localized.Location, v => { _location = v; });
     this.HasRequiredOption("s|status=", Localized.Status, v => { _status = v; });
     this.HasOption <int>("b|size=", Localized.Size, v => { _size = v; });
     this.HasOption("c|crypter=", Localized.Crypter, v => { _crypterLocation = v; });
     this.HasOption("p|password", Localized.Password, v => { _password = true; });
     this.HasOption("g|padding=", Localized.Padding, v => { _padding = v; });
     this.SkipsCommandSummaryBeforeRunning();
 }
Exemple #29
0
        private string GenerateMsg(KeyStatus status, KeyEventArgs args)
        {
            string msg = "";

            switch (args.VirtualKey)
            {
            case Windows.System.VirtualKey.A:
                msg += "A";
                break;

            case Windows.System.VirtualKey.S:
                msg += "S";
                break;

            case Windows.System.VirtualKey.D:
                msg += "D";
                break;

            case Windows.System.VirtualKey.W:
                msg += "W";
                break;

            case Windows.System.VirtualKey.Q:
                msg += "Q";
                break;

            case Windows.System.VirtualKey.E:
                msg += "E";
                break;

            default:
                return(null);
            }

            switch (status)
            {
            case KeyStatus.pressed:
                msg += "P";
                break;

            case KeyStatus.released:
                msg += "R";
                break;
            }

            msg += PrepareValue(_gui.DriveSpeed);
            msg += PrepareValue(_gui.CurveInnerMotorSpeed);
            msg += PrepareValue(_gui.HorizontalTurnSpeed);
            msg += PrepareValue(_gui.VerticalTurnSpeed);

            Debug.WriteLine(msg);
            return(msg);
        }
 /// <summary>
 /// 用於發送一個虛擬按鍵。
 /// </summary>
 /// <param name="SendCode">傳送的按鍵代碼。</param>
 /// <param name="KeyStatus">傳送的按鍵動作。</param>
 /// <returns>傳回該函數是否呼叫成功。</returns>
 public bool SendKey(KeyCodes SendCode, KeyStatus KeyStatus)
 {
     try
     {
         keybd_event((byte)SendCode, 0, (int)KeyStatus, (IntPtr)0);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Exemple #31
0
 public override bool OnKey(Key key, KeyStatus status, Vector2 mousePos)
 {
     if (key > Key.MouseKeyStart && key < Key.MouseKeyEnd && _captureMouse)
     {
         return(false);
     }
     if (_captureKeyboard)
     {
         return(false);
     }
     return(false);
 }
	public void SetButtonStatus(int index, KeyStatus key_Status)
	{		
		var pointer = new PointerEventData(EventSystem.current);

		switch(key_Status)
		{
		case KeyStatus.Normal:
			ExecuteEvents.Execute(buttons[index].gameObject, pointer, ExecuteEvents.pointerUpHandler);
			break;
		case KeyStatus.Clicked:
			ExecuteEvents.Execute(buttons[index].gameObject, pointer, ExecuteEvents.pointerEnterHandler);
			ExecuteEvents.Execute(buttons[index].gameObject, pointer, ExecuteEvents.pointerDownHandler);
			ExecuteEvents.Execute(buttons[index].gameObject, pointer, ExecuteEvents.pointerUpHandler);
			break;
		case KeyStatus.Pressed:
			ExecuteEvents.Execute(buttons[index].gameObject, pointer, ExecuteEvents.pointerEnterHandler);
			ExecuteEvents.Execute(buttons[index].gameObject, pointer, ExecuteEvents.pointerDownHandler);
			break;
		}
	}
        /// <summary>
        /// This method is used to add or update the key/value pairs with the specified key status.
        /// </summary>
        /// <param name="key">Specify the key.</param>
        /// <param name="value">Specify the value.</param>
        /// <param name="keyStatus">Specify the key status.</param>
        private void AddOrUpdate(string key, Action value, KeyStatus keyStatus)
        {
            switch (keyStatus)
            {
                case KeyStatus.CheckOut:
                    if (this.fileCheckOutRollbackFunctions.Keys.Contains(key))
                    {
                        this.fileCheckOutRollbackFunctions[key] = value;
                    }
                    else
                    {
                        this.fileCheckOutRollbackFunctions.Add(key, value);
                    }

                    break;

                case KeyStatus.ExclusiveLock:
                    if (this.releaseExclusiveLockFunctions.Keys.Contains(key))
                    {
                        // There is no way to record twice exclusive lock for just one file
                        this.site.Assert.Fail("Fail to record the exclusive lock on the file {0} more than once.", key);
                    }
                    else
                    {
                        // If the file already lock by the shared lock, then remove the shared lock record.
                        SharedLockKey findKey = this.releaseSharedLockFunctions.Keys.FirstOrDefault(k => k.FileUrl == key);
                        if (findKey != null)
                        {
                            this.releaseSharedLockFunctions.Remove(findKey);
                        }

                        this.releaseExclusiveLockFunctions.Add(key, value);
                    }

                    break;

                case KeyStatus.UploadTextFile:
                    if (this.removeFileFunctions.Keys.Contains(key))
                    {
                        this.removeFileFunctions[key] = value;
                    }
                    else
                    {
                        this.removeFileFunctions.Add(key, value);
                    }

                    break;

                default:
                    this.site.Assert.Fail("Unsupported operation.");
                    break;
            }
        }
 public void FromGetAsyncKeyStateStatus(GetAsyncKeyStateStatus ev)
 {
     KeyStat = ev == GetAsyncKeyStateStatus.KeyDown ? KeyStatus.Down : ev == GetAsyncKeyStateStatus.KeyPressed ? KeyStatus.Press : KeyStatus.None;
 }
 public void FromHookKeyStatusInternal(HookKeyStatusInternal ev)
 {
     KeyStat = ev == HookKeyStatusInternal.WM_KEYDOWN ? KeyStatus.Down : ev == HookKeyStatusInternal.WM_KEYUP ? KeyStatus.Up : KeyStatus.None;
 }
 public void FromSendKeyEventInternal(SendKeyEventInternal ev)
 {
     KeyStat = ev == SendKeyEventInternal.Down ? KeyStatus.Down : ev == SendKeyEventInternal.Up ? KeyStatus.Up : KeyStatus.None;
 }
 public MyKeyboardEvent(KeyStatus KeyStat)
 {
     this.KeyStat = KeyStat;
 }