2010/08/11

キーボード・マウスのフック

Hotstrokesの内部処理の内、キーボードやマウスを扱う部分は「Keyboard」「Mouse」というユニットで定義されており、それぞれ単独で利用することも可能です。

これらのユニットでは、ユーザーの操作がシステムに受理される前に特定の処理を呼び出して、何らかの処理を行ったり操作の受理をブロックすることなどが出来る「フック」という仕組みを利用する機能が提供されています。
これらの機能を利用すれば、あらゆるキー操作に一括してある処理を割り当てたり、マウスの移動が発生するごとに処理を実行させるなど、Hotstrokesでは出来ないようなスクリプトも実現可能です。

このようなキー・マウスフックの機能を標準で利用できるスクリプト実行環境はあまり多くありませんので、フックを用いたツールを手軽に自作したい人などは、NILScriptを試してみるといいでしょう。
NILScriptに同梱の「sample」ディレクトリには、全てのキー操作の情報をコンソールに逐次出力する「keyboard_hook.ng」や、マウスが移動した時にその操作を無効にして上下左右が逆の操作を発生させる「sample/mouse_hook.ng」などのスクリプト例が用意されているので、参照してみてください。

なお、これらの機能を利用したスクリプトでは、あらゆる操作が不能になってしまうような危険なバグが発生する可能性があることに注意してください。
仮想PCやテスト用のPCなど、再起動する羽目になっても良いような環境で十分にテストをすることが望ましいでしょう。

0 件のコメント:

コメントを投稿