0

vb.net アプリケーションにキーの組み合わせをバインドするにはどうすればよいですか? 私はそれがレジストリと関係があることを知っていますが、これを行うには何をどのように行うべきかについて地上で考えていません. アプリが開いているときにユーザーがこれらのキーを押して機能を実行できるようにしたいのですが、アプリが閉じているときはできません。

助けてくれてありがとう!

4

3 に答える 3

0

It depends on what you are trying to do:

If you have a gui application and you want to handle key events then you can do that in a keydown eventhandler

If you want to do more low-level stuff and have an application that will intercept all key strokes (regardless of whether or not the application has focus/is visible) then you need to use pinvoke to hit the win32 apis. I suggest you read the following: link text

Please let us know what you are trying to do so we can provide better feedback.

于 2009-09-08T19:55:27.457 に答える
0

Googleを使用して、このKeyhookの例を見つけました。

以前、Delphi WIN32でキーフックを使用したことがあるので、キーフックについては少し慣れています。(C#ではありません。)DLLに1つ追加すると、ほとんどのウイルススキャナーがこれをマルウェアの動作として認識するため、すべてのHellが壊れてしまう可能性があります。(特に、それらを間違った方法で使用すると、システムで実行されているすべてのプロセスに挿入されます。)ただし、キーフックを使用すると、他のプロセスからキーの組み合わせをキャプチャできます。

プログラミング要件のないソリューションの場合:アプリケーションのショートカットをデスクトップにドロップします。編集し、ショートカットを割り当て、閉じます。ショートカットを押してテストします...

于 2009-09-08T20:23:28.080 に答える
0

ダイアログを使用している場合、一部のコントロール (ボタン、チェックボックス、ラジオ ボタンなど) のテキストに「&」を入れることができます。これにより、Alt とテキスト内の次の文字がアクセラレータ/ショートカットとして使用されます。 . つまり、"&Open" は、Alt+O を押すと [開く] ボタンを有効にします。Alt+e の場合、「Open&en」がアクティブになります。

さらに、Jason Irwin が言ったように、KeyDown または KeyPress イベントのイベント ハンドラーをフォームに追加し、キープレスが目的のキーの組み合わせであるかどうかを確認する必要があります。これは、ユーザーがフォームをアクティブにした場合にのみ機能します (クリックして入力フォーカスを与えます. 別のウィンドウの後ろに置くと、キーを押しても反応しません)

フォームを表示したくない場合、または入力フォーカスのアプリケーションではないときにキー押下に反応したい場合は、もう少し複雑になります (非表示のフォームまたはキーボード フックを使用する必要があります)。

編集

OK、キーボード フックが必要なようですね。これは良い記事のようです。

于 2009-09-08T20:02:15.257 に答える