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还有什么我可以试试的吗?

Sendkeys不发送字符串或发送多个字符串

你在第一个字母后失去了焦点。。。在调用SendWait之前将焦点重置为目标。

sendkeys函数确实不是最好的函数。使用winApi,特别是PostMessage会更好。

这里有一个例子:PostMessage WM_KEYDOWN发送乘法键?

您将更直接地使用消息队列,但这也意味着您将不得不处理额外的事情,例如布局/本地化。