プロが教える店舗&オフィスのセキュリティ対策術

 C言語暦5年,Visual Basic暦3年,C#暦2年,Java暦3年の学生です.

Javaのプログラムで,一つのアプリケーションに因らない,パソコン全体のマウス座標
やキーボードキーなどの入力を取得するには,どんなクラスライブラリを使うのがいいの
でしょうか?

 既存マウスマクロ(入力記録・自動化)ソフトウェアでは,Windowsのみ対応のWin32APIや.NET Frameworkが良く使われていますが,
OSに因らない,バージョンアップ時に互換性のあるマウスマクロをJavaで開発したいと考えています.
http://www.vector.co.jp/vpack/filearea/win/util/ …
 
 また,参考になりそうなJavaのオープンソースやフリー・シェアソフトなどありました

ら,教えて頂けると幸いです.

 どうかよろしくお願いいたします.

A 回答 (2件)

>OSに因らない,バージョンアップ時に互換性のあるマウスマクロ


Swing
http://e-words.jp/w/Swing.html

>参考になりそうなJavaのオープンソースやフリー・シェアソフトなど

EclipseでGUIプログラミング(SWT編)
http://www.iplatform.org/develop/eclipse/swt/swt …

Swingへの対応
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2 …


全体の流れとしては、以下のようになります。

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プログラミングも可能。
    • good
    • 0
この回答へのお礼

回答ありがとうございました.
返事が遅くなってしまい申し訳ありません.

 GUIのAWT,Swing,SWTの概要と流れまであげていただき,
参考になります.

ただ,それぞれ多少使ったことがあるのですが,
おそらく,どれも1アプリケーション内での入力操作をMouseListenerなどのメソッドにより取り出すというもので,
他のアプリケーションにフォーカスが移っている場合は
マウスやキーボードの情報を取得することができないと思います.

質問に以下の条件が抜けていていました.すみません.
「アプリケーションにフォーカスが無い状態でもマウスの座標やキーボードを取りたい」のです.

 また,参考になりそうなJavaのオープンソースやフリー・シェアソフトとは,
Javaライブラリにないっている標準のものではなく(SWTは標準では在りませんが),個人のユーザで作成された公開されたJavaソースや,自作ライブラリを集めた有名なサイトなどのことを指します.
 Javaは個人開発者もオープンソース思考の方が若干多いと思いますが,今まで調べてみて,個人で汎用的な自作ライブラリを提供しているサイトをあまり見たことがないので,
 Javaを熟知している方ならご存知かも,と思い,質問させていただきました.


 難解な質問で申し訳ありませんが,
どうかよろしくお願いいたします.

お礼日時:2007/08/12 10:05

私自身、「多少使ったことがある」程度ですので、いやはや何とも・・・。



>「アプリケーションにフォーカスが無い状態でもマウスの座標やキーボードを取りたい」のです.

クラスではなく、インタフェースの方でしたら以下のようなものもあるらしいです。(getCtrlKey()に、getScreenX()など。)

org.w3c.dom.events
インタフェース MouseEvent
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/or …

>また,参考になりそうなJavaのオープンソースやフリー・シェアソフトとは,Javaライブラリにないっている標準のものではなく(SWTは標準では在りませんが),個人のユーザで作成された公開されたJavaソースや,自作ライブラリを集めた有名なサイトなどのことを指します.

国内でググっても無いようでしたら、やはり英語圏にいくしかないですね~。こっちの方は私の方でもお手上げ状態です。
    • good
    • 0
この回答へのお礼

choconamacream様

お答えいただき,ありがとうございました.
書き込みに長い間気づかずに,
大変遅くなってしまい,申し訳ありません.

org.w3c.dom.eventsのMouseEventは,
よくMouseListener実装して,引数に来るjava.awt.event.InputEvent
のMouseEventとは異なるもので,
こんなインタフェースがあったのか,と参考になりました.
ただ,アプリケーション非フォーカス時でも取るにはどう実装すれば良いかわからなかったり,
まだインタフェースの使い方も勉強中で,
現段階ではJavaでは進められずにいます.

現在はJavaをあきらめて,C#でグローバルフックをしてマウスとキーボードの入力情報を取得することにしました.
C#のグローバルフックは,ぬるり様の以下のURLにあるクラスを使わせてもらっています.
http://hongliang.seesaa.net/article/7651626.html

丁寧に答えていただき,ありがとうございました.

お礼日時:2008/10/01 18:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!