pythonアプリをWindowsのタスクトレイに常駐させる方法[pystray]

Python
この記事は約3分で読めます。

今回は、Windowsのタスクトレイにアプリを常駐させる方法について紹介します。
あまり活躍の場はないかもしれませんが、常駐アプリを作りたくてやってみましたので紹介します。

ライブラリのインストール

まずはいつも通りライブラリのインストールからです。
今回は、pystrayというライブラリをインストールします。

インストールにはコマンドプロンプトを開いて以下の通り入力し実行します。

pip install pystray

実行結果は以下の通りです。

プログラムと実行結果

ではプログラム全体です。

import threading
from pystray import Icon,Menu,MenuItem
from PIL import Image

def tasktray_create():
    try:
        global icon
        item=[]
        options_map = {'Test': lambda: tasktray_test(),'Quit': lambda: tasktray_abort()}
 
        for option,callback in options_map.items():
            item.append( MenuItem(option,callback,default=True if option == 'Show' else False ) )
            
        menu = Menu(*item)

        image = Image.open("app.ico")
        icon = Icon("name",image,"My System Tray Icon", menu)
        icon.run()
    finally:
        tasktray_abort()

def tasktray_test():
    print("TaskTray Test")
    
def tasktray_abort():
    global icon
    if icon != 0:
        icon.stop()

def main():
    #threading.Thread(target=tasktray_create).start()
    print("Start TaskTray")
    tasktray_create()
    print("Quit TaskTray")

if __name__ == '__main__':
    main()

実行結果は以下です。
Windowsのタスクトレイ内に、設定したアイコンが表示されています。
また、アイコンを右クリックすれば、設定したメニューが表示されます。
メニューは、TestとQuitの2つで、Testをクリックすれば”TaskTray Test”を出力
Quiteをクリックすれば、アプリが終了するように実装してあります。

続いてはプログラムの解説ですが、解説は次ページにて記載します。

コメント

タイトルとURLをコピーしました