C# 虚拟键盘按键(一)【SendKeys】

1. 概述

有些场景下,需要模拟键盘按键的动作,而不是真正地去敲击键盘,比如使用触屏或者使用遥控器去模拟输入,这就用到虚拟键盘按键这个功能,常用的有三种方式,一种是用SendKeys去模拟输入按键,第二种是Window API的keybd_event函数,第三种也是Window API的SendInput函数(包含了模拟鼠标)。在微软的官方文档中说,第三种SendInput函数已经取代第二种keybd_event函数(能正常使用)。我们先说第一种SendKeys的使用。在这里插入图片描述

2. SendKeys用法

要使用SendKeys,就得先引用System.Windows.Forms,它有两个方法,一个是Send,一个是SendWait。Send常用来向本级应用程序发送虚拟按键信息,而SendWait是要等待按键消息被处理,常用于向其他活动应用程序发送虚拟按键信息。
比如想触发A键,直接写成SendKeys.Send(“a”),如果是连续触发多键,如1、2、3键,则写成SendKeys.Send(“123”)。键盘上的其他非可见字符的键该如何用呢?我们要记住有三个键特殊键的表示方式,Ctrl键是用" ^ “来表示,Shift是用“ + ”表示,Alt是用”%“表示,如Ctrl+C,应写成SendKeys.Send(”^C")。如果是要真正输出这三个字符,得放到花括号中,如SendKeys.Send(“{+}”)是输出"+“,同样输出左花括号则是SendKeys.Send(”{{}“),右花括号自然是SendKeys.Send(”{}}")。其他不可见字符的键参见下表:

键盘按键输入值
BACKSPACE{BACKSPACE}、{BS} 或 {BKSP}
BREAK{BREAK}
CAPS LOCK{CAPSLOCK}
DEL 或 DELETE{DELETE} 或 {DEL}
UP ARROW(上箭头键){UP}
DOWN ARROW(下箭头键){DOWN}
LEFT ARROW(左箭头键){LEFT}
RIGHT ARROW(右箭头键){RIGHT}
SCROLL LOCK{SCROLLLOCK}
TAB{TAB}
END{END}
ENTER{ENTER} 或 ~
ESC{ESC}
HELP{HELP}
HOME{HOME}
INS 或 INSERT{INSERT} 或 {INS}
NUM LOCK{NUMLOCK}
PAGE DOWN{PGDN}
PAGE UP{PGUP}
PRINT SCREEN{PRTSC}(保留,以备将来使用)
F1{F1}
F2{F2}
F3{F3}
F4{F4}
F5{F5}
F6{F6}
F7{F7}
F8{F8}
F9{F9}
F10{F10}
F11{F11}
F12{F12}
数字键盘加号{ADD}
数字键盘减号{SUBTRACT}
数字键盘乘号{MULTIPLY}
数字键盘除号{DIVIDE}

3. 其他说明

如果不涉及复杂应用,我们就不必去调用Window API操作,SendKeys已经足够使用了。SendKeys的组合键使用,我们注意括号的使用,比如输入大写AB两个字符,需要按下Shift键后,再输入ab,再释放Shift键,这时就得把ab放在括号内,所以是这样的写法:SendKeys.Send(“+(ab)”),如果写成SendKeys.Send(“+ab”),实际输出的是Ab这两个字符,A是大写,b是小写了。另外注意同一键的重复输出,比如SendKeys.Send(“{a 5}”),表示输入5个a,即相当于连续敲击了5次a键。

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值