前面介绍过通过代码的方式模拟键盘按下,博文如下:
C#通过代码的方式模拟键盘按下_c# 模拟键盘输入_zxy的博客
这个博文是通过win32的keybd_event实现,可能会未来的window版本中被淘汰(不是我说的,看到老外一篇文章中说的)
本文的内容参考自:
How to Send Inputs using C# - CodeProject
本文的主要核心是利用了win32的函数SendInput,将会实现并演示如下的效果:
演示效果1: 点击按钮,然后模拟键盘输入,把输入的内容显示到文本框上
演示效果2: 点击按钮,然后控制鼠标光标移动(对角线移动)
演示效果3: 点击按钮,然后控制鼠标光标移动到演示效果1中的那个按钮的位置上,并实现点击,接着就会看到效果1中的效果(模拟键盘输入,把输入的内容显示到文本框上)
本文测试环境:
vistual studio 2017
.net framework 4.0
winform
步骤如下:
1 新建winform项目,.net framework选4.0,名为SendInputDemo,并新建类Win32SendInputApi并编辑如下:
2 winform的UI布局如下:
3 实现演示效果1: 点击按钮,然后模拟键盘输入,把输入的内容显示到文本框上
‘触发键盘按下’按钮的代码逻辑如下:
运行效果如下:


每点一次按钮,就录入一个1
键盘的16进制编码可以参考这个网址:Keyboard scancodes: Keyboard scancodes

如上图中的01代表键盘上的ESC键,02 数字键1或者!键(在笔记本键盘上,这两个键是公用的),相信你能看懂后面编码对应的按钮含义了


4 实现演示效果2: 点击按钮,然后控制鼠标光标移动(对角线移动)
‘设置鼠标的位置’按钮的代码逻辑如下:
上面的逻辑是:获取到当前鼠标光标的位置,然后赋予鼠标光标新的位置,每次设置睡眠100毫秒才能看到效果
运行效果:
可以看到鼠标光标在按钮”设置鼠标的位置”上点击后,鼠标光标逐渐以对角线的方式往右下角移动
5 实现演示效果3: 点击按钮,然后控制鼠标光标移动到演示效果1中的那个按钮的位置上,并实现点击,接着就会看到效果1中的效果(模拟键盘输入,把输入的内容显示到文本框上)
‘设置鼠标的位置并按模拟鼠标点击’的代码逻辑如下:
想要在’触发键盘按下’按钮(名为btnPress)触发自动按钮逻辑,就得通过PointToScreen把控件的坐标转换为计算机桌面的坐标(以前做Unity 3D的时候经常看到这种骚操作),然后把转换后的坐标作为鼠标光标的位置,最后通过模拟鼠标左键按下和抬起,一定要鼠标按下和抬起一起使用才有效,因为鼠标按下和抬起同时完成才算实现鼠标按下的逻辑。
运行效果如下图:

好了,本文的内容到此结束(Tips:在线招个亲,最近家里逼得太急了,老铁有亲戚朋友啥的适龄未婚、活的女的都可以介绍哈,本人情况:男,1993出生,广州工作,广东人,硕士毕业,其它的可以私聊)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/174155.html