c#中利用keybd_event函数+自定义软键盘实现中文输入时的问题

(一)声明外部方法

        [DllImport("User32.dll")]
        public static extern void keybd_event(byte bVK, byte bScan, Int32 dwFlags, int dwExtraInfo);

(二)首先通过切换输入法来说实现中文输入。即键盘CTRL+空格键切换输入法。

        //切换输入法
        private void changeInput()
        {
            //keybd_event函数的四个参数
            //第一个参数:虚拟键码(键盘键码对照表见附录);
            //第二个参数:硬件扫描码,一般设置为0即可;
            //第三个参数:函数操作的一个标志位,如果值为KEYEVENTF_EXTENDEDKEY则该键被按下,也可设置为0即可,如果值为KEYEVENTF_KEYUP则该按键被释放;
            //第四个参数:定义与击键相关的附加的32位值,一般设置为0即可。

            //以下通过按下Ctrl+空格键切换输入法

            keybd_event(0x11, 0, 0, 0);  //0x11---ctrl  按下
            keybd_event(32, 0, 0, 0); // 32--空格键按下
            keybd_event(32, 0, 0x02, 0);// 32--空格键弹起
            keybd_event(0x11, 0, 0x02, 0); //0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值