我正在尝试SendInput
在 user32.dll 中使用准确地键入一个井号(数字符号、井号、八叉戟,无论你怎么称呼它)。
这些是我看到的可能选项:
通过模拟SHIFT+3(SHFT_DN、3_DN、3_UP、SHFT_UP)键入数字符号。我唯一担心的是美国布局的键盘。配置了非美国布局的系统是否有可能输出错误的密钥?
我的另一个选择是通过模拟按键通过 ascii 代码插入字符:ALT+035(ALT_DN、NUMPAD0_DN、NUMPAD0_UP、NUMPAD3_DN、NUMPAD3_UP、NUMPAD5_DN、NUMPAD5_UP、ALT_UP)。这种方法有什么重大缺陷吗?所有区域是否共享相同的 ASCII 代码,Windows 是否在所有区域都提供此 ALT+### 功能?这也将为单个简单字符生成大量击键。我不知道这是否是一个潜在的问题。
理想情况下,会有一个是哈希符号的虚拟键码,但我没有看到。我错过了吗?
还有其他我没有想到的可能性吗?我真的需要继续使用SendInput
有几个原因。
所以我的问题是,我如何使用SendInput
模拟输入的数字/哈希符号,并使其成为全球性的并且不依赖于非美国键盘,并尽可能减少击键次数?
谢谢