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); //0x11---ctrl弹起
}
(三)当在中文输入状态时,在输入字母时,直接利用keybd_event模拟键盘输入,屏幕上会弹出当前使用的中文输入法的界面面板,并在其上列出可能的输入词汇。
private static void addNumkeyINput(byte input)
{
keybd_event(input, input, 0, 0);
keybd_event(input, input, 0x02, 0);
}
(四)理论上,通过keybd_event输入数字键,从可能的输入中文词汇中选择相应的结果即可。问题来啦:对于微软自带的拼音输入法,无法通过keybd_event输入数字来选择,(原因??)不过还好的是,发现若使用搜狗输入法,则可以用keybd_event输入数字来选择。
c#中利用keybd_event函数+自定义软键盘实现中文输入时的问题相关推荐
- Py之matplotlib:在matplotlib库中利用legend函数创建自定义图例(代码实现)
Py之matplotlib:在matplotlib库中利用legend函数创建自定义图例(代码实现) 目录 matplotlib库中利用legend函数创建自定义图例 原始图像 在原始图像上创建自定义 ...
- Android 自定义软键盘实现 数字九宫格
前言 最近项目在对接美团外卖功能 实现外面小哥凭取货码取货 对接完功能后 用户反馈 弹出的软键盘 很难输入 数字太小了 大概是下面这种显示方式 需求 组长说 要不搞一个自定义软键盘吧 数字搞大点 方便 ...
- Android使用xml自定义软键盘效果(附源码)
Android使用xml自定义软键盘效果原理: 1,软键盘其实是个控件,使用android.inputmethodserver.KeyboardView类定义. 2,主布局中使用帧布局,当我们需要显示 ...
- C++关于利用_kbhit()函数持续获取键盘输入的一点心得。
#C++关于利用_kbhit()函数持续获取键盘输入的一点心得. 小白路过想写个贪吃蛇玩玩,当用链表把贪吃蛇结构连起来后自然就想到了移动控制的问题.写来写去代码总是出错,贪吃蛇只有一直按着方向键才能移 ...
- android keyboard颜色,Android基于KeyboardView和Keyboard实现自定义软键盘 自定义键盘背景色...
Android基于KeyboardView和Keyboard实现自定义软键盘 在一些特别的情况下我们需要去自定义键盘 例如: 银行app的密码输入之类的 笨方法就是直接使用布局写我们的自定义软键盘 但 ...
- Android基于KeyboardView和Keyboard实现自定义软键盘 自定义键盘背景色
Android基于KeyboardView和Keyboard实现自定义软键盘 在一些特别的情况下我们需要去自定义键盘 例如: 银行app的密码输入之类的 笨方法就是直接使用布局写我们的自定义软键盘 但 ...
- ffmpeg php 快速播放,怎么在PHP中利用FFmpeg函数对视频播放的时长进行获取
怎么在PHP中利用FFmpeg函数对视频播放的时长进行获取 发布时间:2020-12-18 16:02:20 来源:亿速云 阅读:96 作者:Leah 这篇文章给大家介绍怎么在PHP中利用FFmpeg ...
- spring mvc项目中利用freemarker生成自定义标签
2019独角兽企业重金招聘Python工程师标准>>> spring mvc项目中利用freemarker生成自定义标签 博客分类: java spring mvc +freemar ...
- 在 Apache Spark 中利用 HyperLogLog 函数实现高级分析
在 Apache Spark 中利用 HyperLogLog 函数实现高级分析 预聚合是高性能分析中的常用技术,例如,每小时100亿条的网站访问数据可以通过对常用的查询纬度进行聚合,被降低到1000万 ...
最新文章
- 霍夫变换检测圆c 语言,c – 使用Hough变换检测圆
- c5.0 java_机器学习-AdaBoosting及其Java实现
- HSSFDataFormat大全
- 在CentOS上安装Python3的三种方法
- oracle connect权限6,Oracle 19c 升级19.6 RU 导致权限异常 gipcInternalConnectSync: failed sync request 解决方法...
- R语言中级--自定义方程
- [react] constructor和getInitialState有不同?
- yii2 mysql查询_Yii2 数据库查询汇总
- 通过路由远程计算机重启,路由器怎么重启?这几种方法教你重启怎么弄!
- Asp.net中Application Session Cookie ViewState Cache
- Python的类成员函数、静态函数和成员的函数的比较
- 卫星地图上,深圳梧桐山这一条白线是什么
- php读取excel 报错_PHP读取Excel里的文件
- 基于springboot网上购物商城系统设计与实现
- 遥感原理与应用-基本概念
- 用python制作特效_python 制作影视动画、电影特效工具
- MATLAB突然打不开,窗口闪一下就退了,一种亲试解决方法:
- 加密与解密(一) -- 壳、加壳
- 同花顺没签三方要赔钱才能拿回三方!!!!
- 新用户域名实名认证教程---金万维
热门文章
- 51单片机+oled+ds18b20检测并显示温度第三篇:配置温度检测ds18b20
- 【图像去模糊】Rethinking Coarse-to-Fine Approach in Single Image Deblurring
- orientdb实战
- 多易教育KAFKA实战(2)-java生产者客户端API示例代码
- 常用做题的不定积分公式
- OUC2021秋-计算机网络-期末(回忆版)
- 华夏芯闪耀登场第四届“芯动北京“论坛
- Tkinter Cursors
- windows 安装ninja
- oracle 大表删除数据后,回收空间的问题。