C#Sendkeys发送中文汉字解决方法


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:第一次用博客园,不知道怎么样把代码上传,先这样试试。如果有具体需要拿全部实现代码,可以留言给我。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM