Sendkeys不发送字符串或发送多个字符串
本文关键字:字符串 Sendkeys | 更新日期: 2023-09-27 18:20:09
我在Windows中制作了一个键盘。带有许多按钮的窗体及其内容是字母表中的不同字符,就像真正的键盘一样。
现在的问题是,当我在Windows7中使用键盘时,一切都很完美。但是,当我在Windows XP的触摸屏上使用键盘时,键盘会多次写入我刚刚按下的按钮的内容,或者不会在文本框内写入任何内容。
以下是一些示例代码:
Button temp = sender as Button;
SendKeys.SendWait(temp.Text);
我试过SendKeys.Flash和
<appSettings>
<add key="SendKeys" value="SendInput"/>
</appSettings>
app.config 内部
这就是msdn的解决方案。但它并没有解决问题。
我做错了什么?
编辑:现在我发现第一个字母总是很完美。之后一切都变得糟糕。除了SendKeys.Flush还有什么我可以试试的吗?
你在第一个字母后失去了焦点。。。在调用SendWait之前将焦点重置为目标。
sendkeys函数确实不是最好的函数。使用winApi,特别是PostMessage会更好。
这里有一个例子:PostMessage WM_KEYDOWN发送乘法键?
您将更直接地使用消息队列,但这也意味着您将不得不处理额外的事情,例如布局/本地化。