- - PR -
Robotクラスによる正確なキーイベントの発行について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-04-30 11:43
はじめまして、こうじえんといいます。
Robotクラスを使って、ウィンドウへ正確なキーコードを送ることができずにいます。 何かわかる方いらっしゃいましたら ご教授お願います。 現在、java.awt.Robotクラスを使って、アクティブウィンドウにキーイベント を発行するアプリを作っています。 キーイベントの発行は、RobotのkeyPress()とkeyRelease()を使って実現して いますが、このメソッドを使った場合、ある特定のキーを認識してくれないと いう事象が発生しました。 この問題が発生するのは、今わかっているもので矢印キーがあります。 矢印キーは、本来の矢印キーとNUMパッド上の矢印キー(NUMパッドoff時)があ るかと思います。 私のアプリでは、これらを別のキーとして発行する必要があるのです。 しかし、RobotのkeyPress()とkeyRelease()のパラメタにはキーコードしか指 定できず、KeyEvent.VK_DOWNを指定した場合、常にNUMパッド上の矢印キーと して処理されてしまいます。 そのため、それぞれの矢印キーを別のキーとして処理するウィンドウに対して は正しくキーイベントを発行できない状態です。 そこで、以下の点について教えて頂きたくよろしくお願いします。 ・アプリ側からキーイベントを正しく発行する手段はないのでしょうか? ・キーイベントが正しく処理できる便利なライブラリはないでしょうか? 補足1: アクティブウィンドウには、Notepadのようにあらゆるウィンドウが対象と なります。 補足2: j2sdk 1.4からは、KeyEventにlocationという属性が追加されています。 JFrameを使って、でキーイベントを受け取った場合のキーコードとロケー ションは次のとおりです。 「下矢印キー」の場合 code = KeyEvent.VK_DOWN location = KeyEvent.KEY_LOCATION_STANDARD 「数値パッドの2」(NUMロックoff)の場合 code = KeyEvent.VK_DOWN location = KeyEvent.KEY_LOCATION_NUMPAD 環境は、次の通りです。 Widnows XP Professional SP1 Java 2 SDK SE v1.4.2_03 #[訂正] 文中の次の行を"として処理する"->"として発行する"に訂正しました 私のアプリでは、これらを別のキーとして処理する必要があるのです。 [ メッセージ編集済み 編集者: こうじえん 編集日時 2004-04-30 11:57 ] |
1
