Example #1
0
        //Get KeyChar
        public string GetKeyChar(VirtualKeyState state)
        {
            string charName = "";

            if (virtualKeyInfor == null)
            {
                return(charName);
            }
            if (virtualKeyInfor.m_CharStateCode == KeyCode.Space)
            {
                return(" ");
            }
            switch (state)
            {
            case VirtualKeyState.Normal:
                charName = virtualKeyInfor.m_NormalCharacter;
                break;

            case VirtualKeyState.NormalShift:
                charName = virtualKeyInfor.m_ShiftCharacter;
                break;

            case VirtualKeyState.Number:
                charName = virtualKeyInfor.m_NumberCharacter;
                break;
            }
            return(charName);
        }
Example #2
0
        /// <summary>
        ///     Sends the specified key to a window. This function calls the window procedure for the
        ///     specified window and does not return until the window procedure has processed the message.
        /// </summary>
        /// <param name="hWnd">
        ///     A handle to the window whose window procedure is to receive the message.
        /// </param>
        /// <param name="key">
        ///     The key to send.
        /// </param>
        /// <param name="keyState">
        ///     The key state to send.
        /// </param>
        /// <param name="scanCode">
        ///     true to send the scan code of the specified key; otherwise, false.
        /// </param>
        public static IntPtr SendKeyState(IntPtr hWnd, VirtualKey key, VirtualKeyState keyState, bool scanCode = false)
        {
            var wParam = scanCode ? 0u : GetKeyCode(key);
            var lParam = !scanCode ? 0u : GetScanCode(key);

            return(WinApi.NativeHelper.SendMessage(hWnd, (uint)keyState, (IntPtr)wParam, (IntPtr)lParam));
        }
Example #3
0
        //static int index = 2;
        //// create a single key
        //void CreateKey(string normalChar, string shiftedChar, string numberChar, KeyCode normalCode, KeyCode numberCode, Vector2 pos, Vector2 scale, Transform parent, bool special = false, string imageName = "")
        //{
        //    VirtualKey key = new VirtualKey(); //Record State
        //    key.m_NormalCharacter = normalChar;
        //    key.m_ShiftCharacter = shiftedChar;
        //    key.m_NumberCharacter = numberChar;

        //    key.m_CharStateCode = normalCode;
        //    key.m_NumberStateCode = numberCode;

        //    key.m_Pressed = false;
        //    key.m_Special = special;
        //    key.m_KeyImage = imageName;

        //    // create button
        //    GameObject obj = (GameObject)Object.Instantiate(m_KeyButtonPrefab);
        //    obj.name = normalChar;
        //    obj.transform.SetParent(parent, false);
        //    obj.transform.localScale = Vector3.one;

        //    RectTransform rectrans = obj.GetComponent<RectTransform>();
        //    //Debug.Log(obj.name + "  " + pos);
        //    rectrans.anchoredPosition = pos;
        //    rectrans.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, m_Spacing.x * scale.x);  //按照参数的值设置RectTransform 大小
        //    rectrans.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, m_Spacing.y * scale.y);
        //    obj.GetComponent<UIEffect>().PointerClickEvent += ButtonPressed;  //注册点击事件

        //    VirtualKeyButton button = obj.GetComponent<VirtualKeyButton>();
        //    button.m_Index = index;
        //    index++;
        //    button.InitilKey(key); //初始化
        //    allVirtualKey.Add(button);
        //}

        //// create a row of keys
        //void CreateKeyRow(string chars, string shiftedChars, string numberChar, KeyCode[] charaCodes, KeyCode[] numberCodes, Vector2 pos, float offset, Transform parent, bool special = false, string imageName = "menu_KeyBorad")
        //{
        //    pos.x += offset * m_Spacing.x;
        //    for (int i = 0; i < chars.Length; i++)
        //    {
        //        CreateKey(chars[i].ToString(), shiftedChars[i].ToString(), numberChar[i].ToString(), charaCodes[i], numberCodes[i], pos, Vector2.one, parent, special, imageName);
        //        pos.x += m_Spacing.x + m_ItemSpace.x;
        //    }
        //}

        //// create a whole keyboard
        //void CreateKeyboard()
        //{
        //    Vector2 pos = m_Origin;
        //    pos.y -= m_Spacing.y;
        //    GameObject Up = CommonOperate.CreateObjWhithName("Up");

        //    CreateKeyRow(
        //        "qwertyuiop",
        //        "QWERTYUIOP",
        //        "1234567890",
        //        new KeyCode[] { KeyCode.Q, KeyCode.W, KeyCode.E, KeyCode.R, KeyCode.T, KeyCode.Y, KeyCode.U, KeyCode.I, KeyCode.O, KeyCode.P },
        //        new KeyCode[] { KeyCode.Alpha1, KeyCode.Alpha2, KeyCode.Alpha3, KeyCode.Alpha4, KeyCode.Alpha5, KeyCode.Alpha6, KeyCode.Alpha7, KeyCode.Alpha8, KeyCode.Alpha9, KeyCode.Alpha0 },
        //        pos,
        //        0.5f,
        //        Up.transform
        //    );
        //    pos.x += m_ItemSpace.x;
        //    CreateKey("", "", "", KeyCode.Backspace, KeyCode.Backspace, pos + new Vector2(m_Spacing.x * 11f, 0.0f), new Vector2(1.9f, 1.0f), Up.transform, true, "menu_Close");
        //    pos.y -= m_Spacing.y + m_ItemSpace.y;

        //    GameObject Middle = CommonOperate.CreateObjWhithName("Middle");
        //    CreateKeyRow(
        //        "asdfghjkl",
        //        "ASDFGHJKL",
        //        "@!?.,_/+-",
        //        new KeyCode[] { KeyCode.A, KeyCode.S, KeyCode.D, KeyCode.F, KeyCode.G, KeyCode.H, KeyCode.J, KeyCode.K, KeyCode.L },
        //          new KeyCode[] { KeyCode.At, KeyCode.Exclaim, KeyCode.Question, KeyCode.Period, KeyCode.Comma, KeyCode.Underscore, KeyCode.Slash, KeyCode.Plus, KeyCode.Minus },
        //        pos,
        //        0.7f,
        //         Middle.transform
        //        );

        //    CreateKey("", "", "", KeyCode.Clear, KeyCode.Clear, pos + new Vector2(m_Spacing.x * 11f, 0.0f), new Vector2(1.9f, 1.0f), Middle.transform, true, "menu_Keyboard2");
        //    pos.y -= m_Spacing.y + m_ItemSpace.y;
        //    pos = new Vector2(m_Origin.x + 0.5f * m_Spacing.x, pos.y);
        //    CreateKey("", "", "", KeyCode.LeftShift, KeyCode.LeftShift, pos, new Vector2(1, 1.0f), Middle.transform, true, "menu_keyboard_Shift");  //添加的Shift键位z
        //    pos.x += m_ItemSpace.x;



        //    GameObject Down = CommonOperate.CreateObjWhithName ("Down");
        //    CreateKeyRow(
        //        "zxcvbnm",
        //        "ZXCVBNM",
        //        "&$()%#*",
        //        new KeyCode[] { KeyCode.Z, KeyCode.X, KeyCode.C, KeyCode.V, KeyCode.B, KeyCode.N, KeyCode.M },
        //          new KeyCode[] { KeyCode.Ampersand, KeyCode.Dollar, KeyCode.LeftParen, KeyCode.RightParen, KeyCode.F13, KeyCode.Hash, KeyCode.Asterisk },
        //        //************ KeyCode.F13 present % for This Time
        //        pos,
        //        1.0f,
        //        Down.transform
        //        );
        //    pos += new Vector2(m_Spacing.x * 8 + m_ItemSpace.x, 0);
        //    CreateKey("", "", "", KeyCode.Space, KeyCode.Space, pos, new Vector2(1f, 1.0f), Down.transform, true, "space");  //添加的Space键位z
        //    pos += new Vector2(m_Spacing.x + m_ItemSpace.x, 0);
        //    CreateKey("", "", "", KeyCode.Numlock, KeyCode.Numlock, pos, new Vector2(1f, 1.0f), Down.transform, true, "menu_Keyboard_Number");  //添加的切换键位z
        //    pos += new Vector2(m_Spacing.x * 1.5f + m_ItemSpace.x, 0);
        //    CreateKey("", "", "", KeyCode.Return, KeyCode.Return, pos, new Vector2(1.9f, 1.0f), Down.transform, true, "menu_Keyboard2");  //添加的Enter键位z
        //    pos.y -= m_Spacing.y + m_ItemSpace.y;


        //}
        #endregion

        /// <summary>
        /// 创建虚拟键盘并绑定到UImanager
        /// </summary>
        public void InitialVrKeyBoard()
        {
            keyboardState      = VirtualKeyState.Normal; //KeyBoard State
            m_NormalInputState = true;
            m_CapsShift        = false;

            m_InputBG.enabled = false;
            gameObject.SetActive(false);
        }
Example #4
0
 void SpecialShow(VirtualKeyState state)
 {
     if (virtualKeyInfor.m_CharStateCode == KeyCode.Numlock)
     {
         if (state == VirtualKeyState.Number)
         {
             m_KeyName.text = "";
             m_ExtraImage.gameObject.SetActive(true);
             //       Image.sprite = SpriteHelper.Instance.GetSpriteByName(virtualKeyInfor.m_KeyImage);
         }
         else
         {
             m_KeyName.text = "123";
             m_ExtraImage.gameObject.SetActive(false);
             //    m_ExtraImage.sprite = SpriteHelper.Instance.GetSpriteByName(m_DefaultImage);
         }
     }
 }
Example #5
0
        public void Show(VirtualKeyState state)
        {
            switch (state)
            {
            case VirtualKeyState.Normal:
                //  m_KeyName.text = LauguageTool.Ins.GetText(virtualKeyInfor.m_NormalCharacter);
                m_KeyName.text = virtualKeyInfor.m_NormalCharacter;
                break;

            case VirtualKeyState.NormalShift:
                m_KeyName.text = virtualKeyInfor.m_ShiftCharacter;
                //   m_KeyName.text = LauguageTool.Ins.GetText(virtualKeyInfor.m_ShiftCharacter);
                break;

            case VirtualKeyState.Number:
                m_KeyName.text = virtualKeyInfor.m_NumberCharacter;
                //  m_KeyName.text = LauguageTool.Ins.GetText(virtualKeyInfor.m_NumberCharacter);
                break;
            }
            SpecialShow(state);
        }
Example #6
0
 void ShowKeyView()
 {
     if (m_NormalInputState == false)
     {
         keyboardState = VirtualKeyState.Number;
     }
     else
     {
         if (m_CapsShift)
         {
             keyboardState = VirtualKeyState.NormalShift;
         }
         else
         {
             keyboardState = VirtualKeyState.Normal;
         }
     }
     //Debug.Log("keyboardState " + keyboardState);
     for (int _index = 0; _index < allVirtualKey.Count; _index++)
     {
         allVirtualKey[_index].Show(keyboardState);
     }
 }
Example #7
0
        //Get KeyCode
        public KeyCode GetKeyCode(VirtualKeyState state)
        {
            KeyCode code = KeyCode.None;

            if (virtualKeyInfor == null)
            {
                return(code);
            }
            switch (state)
            {
            case VirtualKeyState.Normal:
                code = virtualKeyInfor.m_CharStateCode;
                break;

            case VirtualKeyState.NormalShift:
                code = virtualKeyInfor.m_CharStateCode;
                break;

            case VirtualKeyState.Number:
                code = virtualKeyInfor.m_NumberStateCode;
                break;
            }
            return(code);
        }
Example #8
0
 protected override void Awake()
 {
     Instance      = this;
     keyboardState = VirtualKeyState.Normal;
 }
Example #9
0
 static extern short GetKeyState(VirtualKeyState nVirtKey);
Example #10
0
 public static bool IsKeyToggled(VirtualKeyState virtKey)
 {
     return((GetKeyState(virtKey) & KeyToggled) != 0);
 }
Example #11
0
 static extern short GetKeyState(VirtualKeyState nVirtKey);
Example #12
0
 public static bool IsKeyToggled(VirtualKeyState virtKey)
 {
     return (GetKeyState(virtKey) & KeyToggled) != 0;
 }