ウェッジデバイスからキーストロークをキャプチャして、コントロールやフォームがそれを受信できないようにする必要があります。私はまた、値(char)を知ることができる必要があります。私はProcessCmdKey(キー)とProcessDialogChar(char)イベントをオーバーライドしようとしました。 ProcessCmdイベントでは、キーストロークを抑制することができますが、それは私が望むものですが、文字はイベントのパラメータではありません。 ProcessDialogCharイベントでは、文字はそこにありますが、キーを受け取ってフォーカスを持つフォームまたはコントロールを防ぐことはできません。提案?キーストロークのキャプチャ
1
A
答えて
1
私はそれをやりたいとは思っていませんでしたが、これを修正して移動する必要があったため、フォームに隠れたテキストボックスを置いて、すぐにデータ文字列キャプチャしたいテキストボックスにフォーカスを合わせ、TextChangedイベントに応答します。タイマーの期限が切れる前に終わりの文字が見えない場合、テキストボックスをクリアしてもう一度やり直します。クルージュ、それは動作し、次の作業に私を得た。
5
フォームのロード中にこれを追加することをお勧めします:
private const int WM_KEYDOWN = 0x100;
そして、この方法:
public bool PreFilterMessage(ref Message m)
{
Keys keyCode = (Keys)(int)m.WParam & Keys.KeyCode;
bool retVal = false;
if (m.Msg == WM_KEYDOWN)
{
// Handle the keypress
retVal = true;
}
return retVal;
}
trueを返すことにより、フォーム
Application.AddMessageFilter(this);
は、この定数を追加コントロールはキーを押すことはありません。
関連する問題
- 1. キーストロークのキャプチャ
- 2. C++のキーストロークのキャプチャ
- 3. キーストロークをキャプチャするアトムパッケージ
- 4. Cのユーザーの「Enter」キーストロークのキャプチャ
- 5. ビジュアルスタジオコード拡張でのキーストロークのキャプチャ
- 6. ウィンドウ内にキーストロークをキャプチャする
- 7. キーストロークをキャプチャするためのビジュアルスタジオの拡張
- 8. RxJSを使用したキーストロークのグループをキャプチャします
- 9. はC [Ubuntuの16.04LTS]でキーストロークをキャプチャすることはできません
- 10. Silverlightアプリケーションでキーストロークをキャプチャするにはどうすればよいですか?
- 11. キーストロークの検出
- 12. Java Swingのキーストローク
- 13. \タイプホットキー用のvimキーストローク?
- 14. Android:キーストローク数
- 15. ウェブフォームでのキーストロークの検出
- 16. AppleScriptでのキーストロークの検出
- 17. ダイアログへのキーストロークの抑制
- 18. macOSでのキーストロークのモニタ
- 19. Javaでは、<tab>のキーストロークをキャプチャする最良の方法は何ですか?
- 20. .NETのBasicButtonを押すキーストローク
- 21. RaspbianのキーストロークをPythonでシミュレート
- 22. jqueryのは、高速なキーストローク
- 23. firefoxアドオンのキーストロークをシミュレート
- 24. XBeeでハードウェアレベルのキーストロークをシミュレート
- 25. バーコードスキャナの入力はテキストフィールド(キーストローク)
- 26. C#のDataGridViewで "CellEndEdit"をトリガするキーストロークをキャプチャする方法はありますか?
- 27. iTerm2でキーストロークを開くリンク
- 28. キーストロークをバッチで渡す
- 29. ファイルに書き込むキーストローク
- 30. WPFキーストローク入力シミュレーションボタンをクリック
私は明確にしなかったもののノートのいくつか:IMessageFilterを実装する必要があります。これには、PreFilterMessageという1つのメソッドがあります。実際にフォーム上に実装する必要はありません。このインターフェースを実装したい場合は、完全に別のオブジェクトを作成することができます。私はよく分かりませんが、メッセージフィルタはGUIスレッドのメッセージポンプに属しているので、フォームが作成される前にAddMessageFilterを呼び出すことができます。 – jasonh
ありがとう、私はそれを行って、それは動作しますが、私はまだProcessCmdKeyをオーバーライドしていたのと同じ苦境にいます。私は実際のキャラクターを入力する必要はありません。例えば私のキーボードでは、文字「^」はkeyCode D6です。シフトキーをパラメータの1つから抜け出すことができます。私は自分自身に翻訳することを避けようとしています。 – jac