C# 虚拟键盘

1  [DllImport("user32.dll")]
2         public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
3 
4 
5             NativeMethods.keybd_event(bkey, 0x45, NativeMethods.KEYEVENTF_EXTENDEDKEY | 0, 0);
6             NativeMethods.keybd_event(bkey, 0x45, NativeMethods.KEYEVENTF_EXTENDEDKEY | NativeMethods.KEYEVENTF_KEYUP, 0); 

bkey使用虚拟键盘的ascii

注意的是字母大小写都用大写的哦(你看虚拟键盘的ascii码,就会发现只有大写的没有小写)大小写问题交给caps lock 和 shift按键去处理

 

虚拟键盘这个课题,关注点不要放在输出内容的控件焦点获取上,这么想就想偏了,会越做越复杂。做好触发键盘按下动作就可以了,焦点不用管,焦点在哪取决于用户操作

 

记得把模拟按键的那个控件 Focusable="False"  这样模拟的键盘 点击时焦点不会移到它上面的 这样焦点问题你就不用管了

posted @ 2018-05-24 14:00  dyfisgod  阅读(353)  评论(0编辑  收藏  举报