SendKeys扬抑符的结果为“与”

本文关键字:结果 SendKeys | 更新日期: 2023-09-27 18:26:36

C#的SendKeys.SendWait表现"有趣":

SendKeys.SendWait("{^}");

在文本框中放入一个与号&。为什么?如何解决?

(注意:这种情况仅发生在de_AT区域性中)

(目标应用程序不是问题所在,我已经在WinForms应用程序示例中尝试过了)

SendKeys扬抑符的结果为“与”

之所以会发生这种情况,是因为SendKeys在幕后使用Win32函数SendInput,并且该函数通过虚拟键代码而非实际字符串进行操作。为了发送"^",它有效地产生了移位-6,在奥地利键盘布局中产生了"&"。正如SendKeys上的文档间接警告的那样:"如果您的应用程序旨在与各种键盘一起在国际上使用,则使用Send可能会产生不可预测的结果,应该避免。"