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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

8376閲覧

pythonでデスクトップアプリを操作するには

jaguarundi

総合スコア19

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/02/06 12:30

前提・実現したいこと

teratailに質問すべきかわからないのですが、一応プログラミング上の質問ということで書かせていただきます。

現在、Python3のtkinterでGUIアプリをプログラミングしています。
理想は、自分が入れたオープンソースのアプリケーションのアップデートをチェックし、もし更新のあるアプリがあるのなら、自作したアプリを操作してまとめてアップデートする、というプログラムなのですが、まずは小さく作ろうということで、LibreOfficeのアップデートを通知するプログラムを作成しようとしています。

GUIの部分に関しては、ネット上のtkinterの情報を見れば済むのですが、独学の自分だけでは、「Pythonからアプリケーションを操作し、更新の有無をチェックし、もし更新があるならアップデートしておく」という肝心な機能をどう実装していけばいいのか皆目見当がつきません。

そこで、一般的にこのような「プログラミングで任意のアプリケーションを操作する」場合、どういった方法が一般的に用いられるのか教えて頂きたいです。
自分なりにアプリを作っている先輩に聞いたのですが、win32API?というものを使っていることくらいしかわかりませんでした・・・

一応コードを貼っておきます。

Python3

1import tkinter 2from tkinter import font 3from tkinter import messagebox 4 5#実際にアップデート確認するボタン 6class Application(tkinter.Frame): 7 8 def __init__(self, master=None): 9 super().__init__(master) 10 self.pack() 11 self.create_widgets() 12 13 def create_widgets(self): 14 self.hi_there = tkinter.Button(self) 15 self.hi_there["text"] = "Check for update(LibreOffice)" 16 self.hi_there["command"] = self.say_hi 17 self.hi_there.pack(side="top") 18 19 self.quit = tkinter.Button(self, text="QUIT", command=self.master.destroy) 20 self.quit.pack(side="bottom") 21 22 def say_hi(self): 23 print("hi there, everyone!") 24 25 26root = tkinter.Tk() 27root.title("Open Source Software Project") 28root.geometry("600x400+500+150") 29 30font1 = font.Font(family="Helvatica", size=21) 31label1 = tkinter.Label(root, text="Hello", font=font1) 32label1.pack(side="top") 33 34 35def check_version(): 36 messagebox.showinfo("Version", "Version: 0.1\n") 37 38 39 40 41B1 = tkinter.Button(root, text="check version", command=check_version) 42B1.pack() 43 44status = tkinter.Label(root, text="Now processing..", borderwidth=10) 45 46status.pack(side=tkinter.BOTTOM, fill=tkinter.X) 47 48app = Application(master=root) 49app.mainloop() 50 51

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

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

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

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

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

guest

回答1

0

ベストアンサー

Python のコードで GUI アプリケーションを操作する場合、pyautogui はどうでしょうか?
マウスやキーボード操作などを Python コードで記述して自動化でききるので今回のケースで利用できるのではないでしょうか?

PyAutoGUIでマウス操作などのGUI操作する方法
PyAutoGuiで繰り返し作業をPythonにやらせよう

win32API

win32API は、Windows の機能を使うアプリケーションを作成するために提供されているCで書かれているライブラリなので、今回のケースには当てはまらないと思います。

LibreOfficeのアップデートを通知するプログラムを作成しようとしています。

アップデートの確認する他の手としては、アプリケーションは Web サイト上で配布されているので、配布されてる Web サイトをリストで登録しておいて、バージョン更新をチェックするという手もあります。

投稿2019/02/06 12:38

tiitoi

総合スコア21956

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

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

jaguarundi

2019/02/06 12:51

迅速な回答、助かります(´;ω;`) pyautoguiというライブラリがあるのですね、今回のプログラムのみならず、日常の作業の自動化にも使えそうです! 大変助かりました、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問