ホットキーへ登録する


C/VB.NETでホットキーへ簡単に登録できるライブラリを作ってみた。ホットキーへの登録自体は簡単なものの、汎用性の高いクラスを作るとなると少々面倒になるのでライブラリ化にしてみました。コンソールでも使うことができ、フォームを作らなくても単体で動作します。

ソースコード

WinAPIコード

適当なクラスへ入れてください。HotKeyクラスの中に入れても問題ありません

ソースコード本体

かなり長いです。ダウンロードすることもできます。名前空間は適当にいじってどうぞ

 使い方

F11を押したらコンソールに「Push HotKey」と表示するサンプル

たったの5行で動作部分までかけちゃいました。クラスを初期化した時点でホットキーへ登録されます。

仕組み

ホットキーへの登録はRegisterHotKeyを、ホットキーの削除はUnregisterHotKeyを使えばいいだけなのですが、ホットキーが押されたという通知はWndProcで渡されるため、ウィンドウを作ってあげる必要が出てきます。そのため、ほとんどのホットキーに関するサンプルソースコードではコンポーネントだったりコントロールとして作っています。ですが、私のこの方法だと専用のメッセージのみのウィンドウを生成してやるため、コンソールでも動作するというわけです。ただし、コンソールで動作させる場合は念のためMainメソッドにSTAThreadAttributeを付ける必要があります。main-staまた、ホットキーのIDは自動生成です。乱数で適当に決めています。なお、IDisposableインターフェースを実装しているため、破棄処理が確実にできるので安心して使うことができます。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">