SendKeys.Send()输入中文

    SendKeys有两个方法,分别为Send()和SendWait(),作用是模拟键盘输入。因为是模拟键盘输入,所以输入的字符只能是键盘上的按键,结果就是不能输入中文。

    这样一来,是不是就不能输入中文了呢?让我们换一个思路:不让直接输入,复制、粘贴总可以吧。

    来看看复制、粘贴的过程:先把内容复制到(系统的)剪贴板,再从剪贴板复制出来。

    根据这一原理,编码的思路就清晰了:

  1. 对剪贴板进行操作,把字符串复制到剪贴板(比发送“CTRL+C”方便)
  2. 焦点定位到输入框
  3. 发送“CTRL+V”

    上面3部涉及到的具体代码都可以在网上找到,所以这个思路是可行的。

    下面贴一段C#的代码作为例子

            #region ^c+^v实现中文的输入         

            string s=”hello, 我是中文字符串”;

            Clipboard.SetText(s);    // 将字符串复制到剪贴板,相当于^c

            textBox1.Focus();    // 定位焦点
            SendKeys.SendWait("^v");   // CTRL+V,粘贴

            #end region

    怎么样,很简单吧

posted @ 2010-04-22 10:09  ols  阅读(4378)  评论(2编辑  收藏  举报