- ベストアンサー
Javaで画面全体のマウス・キーボードイベントを取得するライブラリ
- Javaで画面全体のマウス・キーボードイベントを取得するためのクラスライブラリについて調査しています。
- 既存のマウスマクロソフトウェアではWindowsのWin32APIや.NET Frameworkが使われることが多いですが、JavaでOSに依存せずにマウス・キーボードイベントを取得する方法を知りたいです。
- Javaのオープンソースやフリーシェアソフトを参考にして、画面全体のマウス・キーボードイベントを取得する方法を教えていただけると嬉しいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
私自身、「多少使ったことがある」程度ですので、いやはや何とも・・・。 >「アプリケーションにフォーカスが無い状態でもマウスの座標やキーボードを取りたい」のです. クラスではなく、インタフェースの方でしたら以下のようなものもあるらしいです。(getCtrlKey()に、getScreenX()など。) org.w3c.dom.events インタフェース MouseEvent http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/org/w3c/dom/events/MouseEvent.html >また,参考になりそうなJavaのオープンソースやフリー・シェアソフトとは,Javaライブラリにないっている標準のものではなく(SWTは標準では在りませんが),個人のユーザで作成された公開されたJavaソースや,自作ライブラリを集めた有名なサイトなどのことを指します. 国内でググっても無いようでしたら、やはり英語圏にいくしかないですね~。こっちの方は私の方でもお手上げ状態です。
その他の回答 (1)
- choconamacream
- ベストアンサー率44% (152/338)
>OSに因らない,バージョンアップ時に互換性のあるマウスマクロ Swing http://e-words.jp/w/Swing.html >参考になりそうなJavaのオープンソースやフリー・シェアソフトなど EclipseでGUIプログラミング(SWT編) http://www.iplatform.org/develop/eclipse/swt/swt.htm Swingへの対応 http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_07/eclipse07_4.html 全体の流れとしては、以下のようになります。 1.AWT(Abstract Window Toolkit) →従来からあるJavaのGUI作成クラスライブラリ。ただし、OSによってGUI部品が異なる。(見た目が若干異なってくる。) 2.Swing →AWTに比べ軽快に動き、どのOSでも見た目が統一されている。「Java Web Start」により、バージョンアップ時の再配布などが可能。 3.SWT(Standard Widget Toolkit) →無料の統合開発環境であるEclipseにて実装されている。(もちろん、Eclipseプラグインの作成時にもこれが必要。)Eclipse Visual Editorを使用すれば、VBライクなGUIプログラミングも可能。
お礼
回答ありがとうございました. 返事が遅くなってしまい申し訳ありません. GUIのAWT,Swing,SWTの概要と流れまであげていただき, 参考になります. ただ,それぞれ多少使ったことがあるのですが, おそらく,どれも1アプリケーション内での入力操作をMouseListenerなどのメソッドにより取り出すというもので, 他のアプリケーションにフォーカスが移っている場合は マウスやキーボードの情報を取得することができないと思います. 質問に以下の条件が抜けていていました.すみません. 「アプリケーションにフォーカスが無い状態でもマウスの座標やキーボードを取りたい」のです. また,参考になりそうなJavaのオープンソースやフリー・シェアソフトとは, Javaライブラリにないっている標準のものではなく(SWTは標準では在りませんが),個人のユーザで作成された公開されたJavaソースや,自作ライブラリを集めた有名なサイトなどのことを指します. Javaは個人開発者もオープンソース思考の方が若干多いと思いますが,今まで調べてみて,個人で汎用的な自作ライブラリを提供しているサイトをあまり見たことがないので, Javaを熟知している方ならご存知かも,と思い,質問させていただきました. 難解な質問で申し訳ありませんが, どうかよろしくお願いいたします.
お礼
choconamacream様 お答えいただき,ありがとうございました. 書き込みに長い間気づかずに, 大変遅くなってしまい,申し訳ありません. org.w3c.dom.eventsのMouseEventは, よくMouseListener実装して,引数に来るjava.awt.event.InputEvent のMouseEventとは異なるもので, こんなインタフェースがあったのか,と参考になりました. ただ,アプリケーション非フォーカス時でも取るにはどう実装すれば良いかわからなかったり, まだインタフェースの使い方も勉強中で, 現段階ではJavaでは進められずにいます. 現在はJavaをあきらめて,C#でグローバルフックをしてマウスとキーボードの入力情報を取得することにしました. C#のグローバルフックは,ぬるり様の以下のURLにあるクラスを使わせてもらっています. http://hongliang.seesaa.net/article/7651626.html 丁寧に答えていただき,ありがとうございました.