编辑:不要费心阅读我的答案,按照 Udo Klein 的说明进行操作,它更容易并且可以正常工作。
如何使用最后一个自动热键版本发送 unicode 字符?(无需以前的 unicode 兼容版本即可工作)
很难找到明确的信息。所以要让初学者(像我一样)清楚:
- 复制/粘贴脚本末尾的“代码 A”(它应该以 ANSI 编码)
- 复制/粘贴脚本顶部的“代码 B”
- 在这里找到你的 unicode 字符代码http://www.utf8-chartable.de/unicode-utf8-table.pl
- 复制U+后的4个数字
- 在代码 B 中(在脚本顶部):更改您需要的密钥(在“::”之前)
- 在代码 B 中(在脚本的顶部):过去您在 2 上找到的 unicode。在 0x 之后(而不是“2260”)
- 保存你的脚本
- 双击脚本的图标,它将替换/更新以前的版本
代码 A:
SendUnicodeChar(charCode)
{
VarSetCapacity(ki, 28 * 2, 0)
EncodeInteger(&ki + 0, 1)
EncodeInteger(&ki + 6, charCode)
EncodeInteger(&ki + 8, 4)
EncodeInteger(&ki +28, 1)
EncodeInteger(&ki +34, charCode)
EncodeInteger(&ki +36, 4|2)
DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28)
}
EncodeInteger(ref, val)
{
DllCall("ntdll\RtlFillMemoryUlong", "Uint", ref, "Uint", 4, "Uint", val)}
代码 B:
!+^D:: ; when press CTRL+ALT+SHIFT will output "≠"
{
SendUnicodeChar(0x2260)
}
return
(注意空间!)
需要改进:
不知何故,这个脚本不适用于这个网站http://unicode-table.com/给出的所有 unicode ,但是有人可能会告诉我们为什么有些 unicode 可以工作而其他的不行,也许是如何使其适用于本网站的任何 unicode 字符。这个例如http://unicode-table.com/en/0609/不起作用。知道为什么吗?