Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

キーをだましたいのですが

はじめまして。初心者です。
標準出力の文字を受け取ることにより
「キーを入力したのと同じ動作をさせる」ことをしたいのですが、
Javaで可能でしょうか?
どなたか「キーを入力したのと同じ動作をさせる」方法を
ご存知でしたら教えていただけると幸いです。

4

回答

5489

閲覧

4件の回答

評価

0

「初心者です」というのは、読み手にあまりいい印象を与えないので、やめておいたほうが良いです。
「勉強中です」とかのほうが、感じがいいです。
もっとも、みんな勉強中ですけどね。

ちょっと質問の意味が、分からないんですが…。
標準出力の文字を受け取るというのは、どういうことでしょう。
System.out.printlnを受け取りたいということであれば、
コマンドラインでの実行ならリダイレクトすればいいのですが…。

それと、「キーを入力したのと同じ」ということの、関連が分かりません。
あるプログラムで、ふつうキーを入力するところを、別のプログラムから値を渡すようにしたい、とかでしょうか…?

評価

0

質問が分かりにくくてごめんなさい。
音声を認識したランチャを作成中でして、
キーシュミレーションをしたいということです。
キーシュミレーションをするためのメソッドを
教えていただきたいです。

評価

0

キー「シミュ」レーションですね。

自分で作っているプログラムへの通知か、それ以外のプログラムへの通知かで、全く違ってきます。

自分で作っているプログラムであれば、騙すとかでなく、トリガ(引き金=メソッドを実行する条件)を、複数作っておくのが一番簡単です。
例えば、mainメソッドの引数が"SIMULATE"ならメソッドを呼んだり、
シナリオファイルを読み込んだりすれば良いです。

どうしても、キーボードイベントを起こしたいというなら、以下のような感じでできます。

KeyEvent ev = new KeyEvent(target, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_F1, (char)KeyEvent.VK_F1);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(ev);


自分で作っているプログラムでないなら…。
込み入った話になるので、とりあえずは割愛しておきます。

評価

0

ありがとうございました。
ある方からIEなどのアプリケーションに対して
キーシミュレーションさせることはJavaでは難しいと
教えていただき、対策も教えてくださったので解決しました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。