[C#]C#如何获取\设置键盘按键状态

        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "GetKeyState")]
        public static extern int GetKeyState(
            int nVirtKey // Long,欲测试的虚拟键键码。对字母、数字字符(A-Z、a-z、0-9),用它们实际的ASCII值
        );

        public const int KEYEVENTF_KEYUP = 0x02;
        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "keybd_event")]
        public static extern void keybd_event(
            byte bVk,       // Byte,欲模拟的虚拟键码
            byte bScan,     // Byte,键的OEM扫描码
            int dwFlags,    // Long,零;或设为下述两个标志之一 KEYEVENTF_EXTENDEDKEY 指出是一个扩展键,而且在前面冠以0xE0代码 KEYEVENTF_KEYUP 模拟松开一个键
            int dwExtraInfo // Long,通常不用的一个值。api函数GetMessageExtraInfo可取得这个值。允许使用的值取决于特定的驱动程序
        );

        private bool GetKeyState(System.Windows.Forms.Keys keys)
        {
            return ((GetKeyState((int)keys) & 0x8000) != 0) ? true : false;
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            keybd_event((byte)System.Windows.Forms.Keys.D, 0, 0, 0); 
        }

你可能感兴趣的:(C#,C#)