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

问题描述 投票:0回答:2

我想将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 + Add 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)))

vb.net keypress sendkeys
2个回答
0
投票

你有没有尝试过

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

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


1
投票

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

SendKeys.SendWait("%({ADD}251)")
© www.soinside.com 2019 - 2024. All rights reserved.