まぐらぼ

Unity/Android、Microsoft系のWPFをやってます。

押下キーと装飾キーの状態。

もとネタ。
動作確認済み.

[environment]
OS : win8.1
IDE: VS2012
PROJECT: STORE APPS

サンプル

        void check_keystate()
        {
            // VirtualKey[] とArray型は別物
            VirtualKey[] vkeys = Enum.GetValues(typeof(VirtualKey))
                .Cast<VirtualKey>()
                .Where(k => k != VirtualKey.Menu &&
                    k != VirtualKey.LeftWindows &&      // ウィンドウズキー?
                    k != VirtualKey.Control &&
                    k != VirtualKey.Shift)
                .ToArray();

          //  System.Type type = vkeys.GetType();
            VirtualKey ck = vkeys.FirstOrDefault<VirtualKey>(k => Window.Current.CoreWindow.GetKeyState(k) == CoreVirtualKeyStates.Down);
            // 表示
            if (ck != VirtualKey.None)
            {
                Debug.WriteLine("{0}", ck.ToString());
            }

            var m = VirtualKeyModifiers.None;
            if (Window.Current.CoreWindow.GetAsyncKeyState(VirtualKey.Shift) == CoreVirtualKeyStates.Down)
            {
                m |= VirtualKeyModifiers.Shift;
            }

            //表示
            if (m != VirtualKeyModifiers.None)
            {
                Debug.WriteLine("modifiers : {0}", m.ToString());
            }

        }