質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Q&A

解決済

1回答

659閲覧

ボタンツールを作成してアクティブなアプリケーションの画面操作などを行いたい

usagi_jiro

総合スコア1

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

1グッド

0クリップ

投稿2022/12/16 05:17

編集2022/12/16 08:06

Javaで下記内容が実現可能か否か、ご教示いただきたいです。

■実現したいこと
ボタンバーのようなものを作成し、
Edgeブラウザで開いたpdfファイルを操作(ページ送り・戻り・閲覧モード切り替え(フル/通常)など)したい
といったものです。
(下図の右下にあるボタン群のようなものを目指しています)
イメージ説明

自力でも色々探してみたのですが、力及ばず…。

■質問内容
ボタンの動作は、アクティブなアプリケーションにキーストロークを送って操作できるようにしたいです。
イメージとしてはC#のSendkey.Sendメソッドを使用した時のように、
ポップアップ内の▶ボタンを押下した際は、
キーボード操作で「PgDn」を押下したのと同じ動作がポップアップ直下の
アクティブなアプリケーションに行われるようにしたいと考えております。
私のサーチ不足&知識不足で大変恐縮なのですが、
この動作をJavaにおいて実現するにはどのような手法があるかご教示いただきたいです。
(キーボード操作を拾って処理は見つけられましたが、処理内でキーボード操作指定→アクティブなアプリケーションを操作の方は見つけられませんでした…)

開発にはまだ取り掛かっていない段階ですので、
実現可能なものであるかを確認したく相談させていただきました。

言葉足らずな点や、不足な情報などありましたらご指摘いただければと思います。
どうぞよろしくお願いいたします。

TN8001👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2022/12/16 07:28 編集

JPopupMenu というと Swing のビューの 1 つで、出来上がるのは Swing を GUI とする java アプリケーションになると思うのですが、ブラウザとどう連携を取るつもりなのでしょうか。 普通に Windows のアプリが自身に無関係な他のアプリを操作するというのもあり得ないと思うのですが。 連携で無ければ、画像をコピペするとかなら何かあるかもしれません。
usagi_jiro

2022/12/16 07:46

ご回答ありがとうございます。 おお…私の無知が露呈してしまいましたね…。 お恥ずかしい限りです。 JPopupMenuはそもそも自分の目的には使えないことがわかりました。 ありがとうございます。 C#で同じようなものを作成しており、アクティブなアプリの操作が実現できていたのでJavaでもできないものかなと思い質問させていただきました。
jimbe

2022/12/16 08:44 編集

C# で出来ているのでしたら、 java 用のネイティブライブラリみたいのを作れば java でも出来るということになるのかもしれません。 JPopup はともかくとして、ボタンだけを配置したウインドウというのは出来ます・・・多分・・・ので、ネイティブライブラリが出来ればボタンを押した時にアクティブウインドウにキーを送るという感じになるでしょうか。 Swing アプリが UI というだけなので java の意味があるのか疑問になりますが。
usagi_jiro

2022/12/16 09:32

おお…!グタグタな私に引き続きご回答ありがとうございます! 感謝しきりです…! 先ほどのご回答では私はいったい何を考えていたんだとハッとしてよく考えなおしてみました。 (なぜポップアップというものに固執したのか…本当にお恥ずかしいです) >ボタンだけを配置したウインドウというのは出来ます そうですね。本当にその通りです…。 なので、ボタンだけを配置したものを作って最前面で固定すれば外観的には望む形になるな…と。 そしてボタンの動作としては、seleniumにsendKeysで特殊キーのキーボード入力ができるとのことなので、これでいけそうな気がします…!(またとんちんかんなことを言っていたらすみません…
guest

回答1

0

ベストアンサー

特に動作確認はしていません(しかしC#で普通にできていることなら、Javaでも何かしら方法はあると思います)

①ボタンバーは最前面で固定できるでしょうか?

普通のウィンドウ(JFrame)なら、setAlwaysOnTopがあります。
Window#setAlwaysOnTop (Java Platform SE 8 )

ほかにも最前面を取るアプリがあると、思ったようにならないかもしれません。

②ボタンの動作は、アクティブなアプリケーションにキーストロークを送って操作できるようにしたいです。

SendKeysに比較的近いのはこれでしょうか。
Robot#keyPress (Java Platform SE 8 )

③JPopupMenuにリンク付きのサムネイル表示なんかはできたりするでしょうか?

「pdf」のサムネイルという意味ですよね?
なにかライブラリを使えばサムネイルも作れるとは思いますが、「だったらEdgeなど介さずにそのアプリで表示すれば?」って気はします。

押下したら指定のpdfファイルを開くなどをやってみたいです。

Edgeを起動すればWeb上・ローカルともに表示されると思います(すでに起動していれば新規タブ)
ProcessBuilder (Java Platform SE 8 )

投稿2022/12/16 11:59

TN8001

総合スコア9321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TN8001

2022/12/16 11:59

編集前の文章を引用するのはマナー的にどうかと思いましたが、課題が分かりにくくなったので当初の内容で回答させていただきました。
usagi_jiro

2022/12/23 12:33

ご回答ありがとうございます! 私生活がバタバタしていたためコメントが遅れて大変申し訳ございません。 取り急ぎ返信させていただきたいと思います。 最前面のアプリは他には出さない予定なので、問題ないかとは思いますが想定外の動きがあると見込んで作ってみます。 急に立て込んできてしまい、じっくり試せなくなってしまったのですが頂いた回答を元に試行錯誤してみようと思います。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問