wince获取shift状态 GetKeyboardStatus怎么写?

解决方案 »

  1.   

    [DllImport("coredll.dll", EntryPoint = "GetKeyState")]
    public static extern int GetKeyState(int nVirtKey);
    public const int VK_SHIFT = 0x10;
    private void button1_Click(object sender, EventArgs e)
    {
        if ((GetKeyState(VK_SHIFT) & 0x80) == 0x80)
        {
            MessageBox.Show("Shift 按下了");
        }
    }
      

  2.   

    在你需要的地方用就可以了。我的例子是在按下Shift的情况下,点击按钮做的测试。可以检测那一时刻是否Shift按下。
      

  3.   

    以上代码。任何时候调用都可以捕获当前SHIFT键按下的状态。和放在哪里执行毫无关系。
    你可以包装一下public static class KeyStateChecker
    {
        [DllImport("coredll.dll", EntryPoint = "GetKeyState")]
        public static extern int GetKeyState(int nVirtKey);
        public const int VK_SHIFT = 0x10;
        private static bool IsShiftDown()
        {
            return (GetKeyState(VK_SHIFT) & 0x80) == 0x80;
        }
    }
    //调用
    bool shift_down = KeyStateChecker.IsShiftDown();
      

  4.   

    在wince上 开机默认是数字状态  我按一下shift键 切换到字母状态 再按shift 切换到数字状态 (类似手机上的那个切换)