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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

666閲覧

Pythonにてアプリケーションを操作したい

soccerkozo

総合スコア12

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/09/29 03:43

編集2021/09/29 09:50

Pythonのプログラムにて、起動状態のアプリケーションに「スペース+コントロール」を送り、キーボード操作によって開始、停止する機能を操作したいです。
python、キーボード、アプリケーションで検索したところヒットするものはpyautoguiを使うものばかりでした。
pyautoguiを使わずアプリケーションに対しキーボード入力による操作を行う方法があれば教えていただきたいです。

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

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

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

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

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

BeatStar

2021/09/29 05:08 編集

少なくとも仕様をちゃんと決めましょう。 > Pythonにてアプリケーションの「スペース+コントロール」にて作動する機能を操作したい とは何でしょうか。SPACE + CTRL で起動するのか、それともとある処理をSPACE + CTRL でするのか。後者ならそのやりたい処理を書きましょう。 あまりにも漠然としすぎです。 それに「自分なりに調べた事」や「自分の考え」等を書きましょう。 たとえば『「Python スペース コントロール」で検索しましたが、ヒットしたのは~とかです。やりたい処理は~ですが』のように。(別の言い方でもいいですが) 回答者は質問者と同じ環境にある…わけじゃないので、他人が読んで理解できるような文章を書くように心がけましょう。("出来ないの"と"しない"とでは雲泥の差がある) 質問は修正できるので修正してください。
BeatStar

2021/09/29 06:57

編集後(現在)のものを見ると、三通りの解釈が出来ますね。 (自分が作った今回のプログラムをProg1として) 1. Prog1が起動している状態で、逐次コマンドプロンプト等から命令を出す 2. Prog1が起動している状態で、SPACE + CTRLをすると特定の処理(たとえば「ファイルを書き換える」等)をする 3. 別のプログラム(Other.exe) が起動しているときにProg1で「ボタンが押された」等のイベントを送り付ける系 ですね。どれでしょうか。
soccerkozo

2021/09/29 07:44

何度も申し訳ありません。 3番を意図しております。
BeatStar

2021/09/29 07:48 編集

@ 質問者さん > 3番を意図しております 質問本文に書いてください。 ここはカスタマーサービスではなく、「ナレッジサービス」です。 似たような問題に直面して検索したときにこのページに当たって参考にする人のためでもあります。 (本文に書かれていないと見逃したりするし) その場合は、「3番目で」とかではなく、出来るだけ本文だけで完結できるように書いてくださいね。
BeatStar

2021/09/29 10:49

ざっと調べてみましたが、質問者さんのおっしゃる通り、pyAutoGUIを使う方法しかありませんね。 (他にもあるにはあるが、どのみち他のライブラリとかを使うし) えーっと、pyAutoGUIを使ってみては? 使いたくない理由があるのでしょうか。 たとえば「基本オフラインのため、pip等が使えない」のか、「単にインストールが面倒だから」なのかとかでも違いますよ。 前者なら https://anond.hatelabo.jp/20201118112659 のような方法がとれるようです。 (細かい方法はご自分で調べてください) 後者なら「別の言語を使いましょう」です。 どのみちなんらかのライブラリを導入するか、なんらかのツールを導入する羽目になるはずですし。
guest

回答1

0

Sikulixを使うという方法があるかと思います。
回答している2年前ぐらいにそこそこ話題になったような気がします。

java上で動作するjythonを利用して自動操作環境を作成できます。

利点は

  • ボタンの画像を認識して押すとかが可能
  • 標準のpython環境を汚さずに環境を構築できる
  • マルチプラットフォーム(LinuxのGUI上でも動く)
  • 一連の自動操作スクリプトをまとめてショートカット(バッチファイル)にすることが可能

難点は

  • 情報があまりない
  • jythonはベースのpythonが2.7系
  • 標準以外のパッケージの追加が難しい
  • 環境構築は初心者には難しいかも

という感じです。

例えば,起動しているfirefoxにフォーカスを当てて
アドレスバーに移動する(Alt + dを押す)例としては次のような感じです。

python

1 2myApp = App("firefox") 3myApp.focus() 4sleep(1) 5type("d", Key.ALT)

投稿2022/09/22 14:59

ujimushi_sradjp

総合スコア2103

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問