c# – 如何通过编程方式调用键盘按键?
发布时间:2020-12-15 21:47:57 所属栏目:百科 来源:网络整理
导读:问题: 从一段C#代码中调用要按下的键盘键 但这里有一个问题:按键不应局限于流程/应用程序 但是当整个操作系统收到时,当程序处于后台并且不同的表单/程序具有焦点时也是如此 目标: 制作一个锁定CapsLock和NumLock状态的程序 背景: 我有一台笔记本电脑,这
问题:
从一段C#代码中调用要按下的键盘键 但这里有一个问题:按键不应局限于流程/应用程序 但是当整个操作系统收到时,当程序处于后台并且不同的表单/程序具有焦点时也是如此 目标: 背景: 解决方法using System; using System.Runtime.InteropServices; public class CapsLockControl { public const byte VK_NUMLOCK = 0x90; public const byte VK_CAPSLOCK = 0x14; [DllImport("user32.dll")] static extern void keybd_event(byte bVk,byte bScan,uint dwFlags,UIntPtr dwExtraInfo); const int KEYEVENTF_EXTENDEDKEY = 0x1; const int KEYEVENTF_KEYUP = 0x2; public static void Main() { if (Control.IsKeyLocked(Keys.CapsLock)) { Console.WriteLine("Caps Lock key is ON. We'll turn it off"); keybd_event(CapsLockControl.VK_CAPSLOCK,0x45,KEYEVENTF_EXTENDEDKEY,(UIntPtr) 0); keybd_event(CapsLockControl.VK_CAPSLOCK,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,(UIntPtr) 0); } else { Console.WriteLine("Caps Lock key is OFF"); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |