C#的Sendkeys方法,可以实现将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。但是在使用过程中发现,输入汉字的时候经常出现发漏或者发不了的情况。后来经过研究,发现可以通过更加底层的方法,通过引用user32.dll,实现更加底层的模拟键盘输入。
有了这个想法,为了实现汉子的输入,思路是:
1、封装KeyBoard类,通过引用User32.dll实现单个字母的输入;
2、为解决输入汉字的问题,通过迂回的方法,把汉字复制到系统的剪贴板,然后模拟键盘输入Crtl+V的方式,把剪贴板中的中文汉字复制到要输入的地方。
关键代码如下:
//按下crtl+v,起到黏贴的作用 public static void Paste(string contents) { Tools.SetClipBoard(contents); KeyBoard.keybd_event(17, 0, 0, 0); KeyBoard.keybd_event(86, 0, 0, 0); KeyBoard.keybd_event(17, 0, 2, 0); KeyBoard.keybd_event(86, 0, 2, 0); }
PS:第一次用博客园,不知道怎么样把代码上传,先这样试试。如果有具体需要拿全部实现代码,可以留言给我。 |