zoukankan      html  css  js  c++  java
  • 获取哪些键正在被按下

    [DllImport("user32.dll", EntryPoint = "keybd_event")]
            private static extern void keybd_event(
                byte bVk,    //虚拟键值
                byte bScan,// 一般为0
                int dwFlags,  //这里是整数类型  0 为按下,2为释放
                int dwExtraInfo  //这里是整数类型 一般情况下设成为 0
            );
    
            [DllImport("user32.dll", EntryPoint = "GetKeyboardState", SetLastError = true)]
            private static extern bool NativeGetKeyboardState([Out] byte[] keyStates);
    
            public static byte GetVirtualKeyCode(Keys key)
            {
                int value = (int)key;
                return (byte)(value & 0xFF);
            }
    
            private static List<string> GetAllPressedKey()
            {
                var array = new byte[256];
                NativeGetKeyboardState(array);
    
                var keyNames = Enum.GetNames(typeof(Keys)).ToList();
                var keysList = new List<string>();
                foreach (var keyName in keyNames)
                {
                    var key = (Keys)Enum.Parse(typeof(Keys), keyName);
                    var code = GetVirtualKeyCode(key);
                    if ((array[code] & 0x80) != 0)
                    {
                        keysList.Add(keyName);
                    }
                }
    
                return keysList;
            }
    
            private static bool CheckAnyKeyPressedAndRelease()
            {
                var array = new byte[256];
                NativeGetKeyboardState(array);
    
                var keyNames = Enum.GetNames(typeof(Keys)).ToList();
                var keysList = new List<string>();
                foreach (var keyName in keyNames)
                {
                    var key = (Keys)Enum.Parse(typeof(Keys), keyName);
                    keybd_event((byte)key, 0, 2, 0);
                }
                return keysList.Count > 0;
            }
  • 相关阅读:
    HDU 4358 莫队算法+dfs序+离散化
    HDU 5692 线段树+dfs序
    Codeforces Round #377 (Div. 2) A B C D 水/贪心/贪心/二分
    LVS负载均衡的三种模式和八种算法总结
    hdfs 常用命令
    Linux 系统监控
    CentOS 7 时区设置
    kubernetes 留言版DEMO
    CentOS7 PostgreSQL 主从配置( 三)
    Postgres数据库在Linux中优化
  • 原文地址:https://www.cnblogs.com/nanfei/p/10921428.html
Copyright © 2011-2022 走看看