• C#调用触滑输入法实现触摸屏键盘功能
  • 发布于 2个月前
  • 314 热度
    0 评论
背景
最近在做一个项目,用户端是触摸屏,涉及到一些表单数据的操作,因为是没有外接的鼠标键盘,所以想着当用户在操作表单的时候,能够把软件键盘输入法给调出来使用。

什么是触滑输入法
触滑输入法Swype,是针对触摸屏这种输入方式的革命性改进产品,Swype根据滑动的轨迹,智能分析并自动拼写出所输入的单词。由于这种输入方式不需要手指离开屏幕,因此被人称作滑行输入。

网上找了下,发现了多文输入法是不错的选择,还有对应的sdk,看了下介绍。专为触控一体机设计的智能输入法,包含有以下功能: →进入新站点 支持全键盘、九宫格(T9模式)智能拼音、身份证键盘,数字键盘等。支持手写识别。支持智能笔画(T9笔画)。可以...

于是说干就干。

代码实现
1、加载动态库
  private const int WM_COPYDATA = 0x004A;
        // 结构定义 
        public struct CopyDataStructIN
        {
            public IntPtr dwData;
            public int cbData;
            public IntPtr lpData;
        }

        //1
        [DllImport("dwApiLib.dll", EntryPoint = "DWAPI_SendCmdA", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
        private static extern bool DWAPI_SendCmdA(StringBuilder fullPath);

        [DllImport("User32.dll")]
        public static extern int RegisterWindowMessage(string Name);
2、设置开机启动
 private void Form1_Load(object sender, EventArgs e)
        {
            // 堆代码 duidaima.com
            // 输入法主程序:DWMain.exe
            // 它应该是随电脑开机启动,如果没有启动,你也可以在这里启动它。
            // 路径:安装目录\bin\windwos32\DWMain.exe

            textBox2.LostFocus += new EventHandler(txt_LostFocus); //失去焦点后发生事件
            textBox2.GotFocus += new EventHandler(txt_GotFocus);  //获取焦点前发生
        }
3、鼠标在文本框的时候,调用显示方法
 // 显示
        private void buttonShow_Click(object sender, EventArgs e)
        {
            DWAPI_SendCmdA(new StringBuilder("show"));
        }
4、离开的时候,退出输入法
 // 退出输入法
        private void buttonClose_Click(object sender, EventArgs e)
        {
            DWAPI_SendCmdA(new StringBuilder("close"));
        }

效果图如下

用户评论