使用SendKeys发送Alt组合以输入特殊字符

时间:2016-08-17 09:32:33

标签: vb.net keypress sendkeys

我想将Alt组合发送到屏幕键盘上的另一个窗口。 使用组合我的意思是当你按住Alt并输入数字或十六进制(注册表项必须设置为十六进制)组合时:

ALT down, Add press, 2 press, 5 press, 1 press, ALT up

我试过

SendKeys.SendWait("%{ADD}251")但它是 Alt + Add 2 5 1

SendKeys.SendWait("%{ADD}%2%5%1")但它是 Alt +添加Alt + 2 Alt + 5 Alt + 1

SendKeys.SendWait("%({ADD}251)")但它是 Alt,然后同时按下其他键

Ref to MSDN

有关使用SendKeys或其他类的解决方案的任何建议吗?

[编辑] 的解决方案:

CharCode(枚举源元素)的示例:ʊ = &H28A

Dim CharCodeUnicodeStr As String = Hex(CInt([Enum].Parse(GetType(Source), CharStr))).ToString SendKeys.SendWait("%{ADD}%" & ChrW(Convert.ToInt32(CharCodeUnicodeStr, 16)))

2 个答案:

答案 0 :(得分:1)

将键放在括号内,表示 ALT 应该按住,同时按下其他键。

SendKeys.SendWait("%({ADD}251)")

答案 1 :(得分:0)

你试过吗

SendKeys.SendWait("%{ADD}%" & ChrW(&H251))

这会将您的hexa代码转换为char。然后,如果您可以控制其他应用程序,则可以将此字符还原为数字...