1

Windows.Forms で多数のボタンを備えたキーボードを作成しました。その内容は、実際のキーボードのようにアルファベットのさまざまな文字です。

問題は、Windows 7 でキーボードを使用しているときに、すべてが完全に機能することです。しかし、Windows XP のタッチスクリーンでキーボードを使用すると、キーボードは、押したばかりのボタンの内容を複数回書き込むか、テキスト ボックス内に何も書き込みません。

コード例を次に示します。

Button temp = sender as Button;
SendKeys.SendWait(temp.Text);

SendKeys.Flush と

<appSettings>

<add key="SendKeys" value="SendInput"/>
</appSettings>

app.config の内部

これがmsdnの解決策です。しかし、それは問題を解決しませんでした。

私は何を間違っていますか?

編集:最初の文字が常に完全に機能することがわかりました。その後、すべてがひどくなります。SendKeys.Flush 以外に試すことができるものはありますか?

4

2 に答える 2

2

最初の文字の後にフォーカスを失っています... SendWait を呼び出す前に、フォーカスをターゲットにリセットしてください。

于 2012-02-28T18:51:16.193 に答える
-1

sendkeys 関数は、実際には最高の関数ではありません。winApi、より具体的には PostMessage を使用すると、より効果的です。

以下に例を示します: PostMessage WM_KEYDOWN 乗算キーを送信しますか?

メッセージ キューをより直接的に操作することになりますが、レイアウトやローカリゼーションなど、余分なことを処理する必要があることも意味します。

于 2012-02-28T19:30:53.523 に答える