使用 SendKeys 发送 Alt 组合以输入特殊字符
Use SendKeys to send Alt combinations to enter special characters
我想在屏幕键盘内将 Alt 组合发送到另一个 window。
对于组合,我的意思是当您按住 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 然后同时按下其他键
对使用 SendKeys 或其他 类 的解决方案有任何建议吗?
[编辑]
解法:
CharCode 示例(枚举源的元素):ʊ = &H28A
Dim CharCodeUnicodeStr As String = Hex(CInt([Enum].Parse(GetType(Source), CharStr))).ToString
<strong>SendKeys.SendWait("%{ADD}%" & ChrW(Convert.ToInt32(CharCodeUnicodeStr, 16)))</strong>
将键放在括号内表示 ALT 应 按住 同时按下其他键。
SendKeys.SendWait("%({ADD}251)")
你试过了吗
SendKeys.SendWait("%{ADD}%" & ChrW(&H251))
这会将您的十六进制代码转换为字符。然后,如果您可以控制其他应用程序,您可以将此字符恢复为数字...
我想在屏幕键盘内将 Alt 组合发送到另一个 window。 对于组合,我的意思是当您按住 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 然后同时按下其他键
对使用 SendKeys 或其他 类 的解决方案有任何建议吗?
[编辑] 解法:
CharCode 示例(枚举源的元素):ʊ = &H28A
Dim CharCodeUnicodeStr As String = Hex(CInt([Enum].Parse(GetType(Source), CharStr))).ToString
<strong>SendKeys.SendWait("%{ADD}%" & ChrW(Convert.ToInt32(CharCodeUnicodeStr, 16)))</strong>
将键放在括号内表示 ALT 应 按住 同时按下其他键。
SendKeys.SendWait("%({ADD}251)")
你试过了吗
SendKeys.SendWait("%{ADD}%" & ChrW(&H251))
这会将您的十六进制代码转换为字符。然后,如果您可以控制其他应用程序,您可以将此字符恢复为数字...