Windowsのタスクトレイにアイコンを表示する方法をPythonで実現することができます。以下は、Pythonのwin32apiライブラリを使用して、タスクトレイにアイコンを表示する方法です。
まず、win32apiライブラリをインストールします。
!pip install pypiwin32
次に、以下のコードを使用して、タスクトレイアイコンを作成します。
import os
import pythoncom
import pyHook
import win32api
import win32gui
import win32con
class WindowsBalloonTip:
def __init__(self, title, msg):
message_map = {
win32con.WM_DESTROY: self.OnDestroy,
}
# Register the window class.
wc = win32gui.WNDCLASS()
self.hinst = wc.hInstance = win32api.GetModuleHandle(None)
wc.lpszClassName = 'PythonTaskbar'
wc.lpfnWndProc = message_map
self.classAtom = win32gui.RegisterClass(wc)
# Create the window.
style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
self.hwnd = win32gui.CreateWindow(self.classAtom, "Taskbar", style,
0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
0, 0, self.hinst, None)
win32gui.UpdateWindow(self.hwnd)
self.show_balloon(title, msg)
def OnDestroy(self, hwnd, msg, wparam, lparam):
nid = (self.hwnd, 0)
win32gui.Shell_NotifyIcon(win32gui.NIM_DELETE, nid)
win32gui.PostQuitMessage(0)
def show_balloon(self, title, msg):
style = win32gui.NIF_INFO | win32gui.NIF_ICON | win32gui.NIF_TIP
icon = os.path.abspath(os.path.join(os.path.dirname(__file__), 'icon.ico'))
flags = win32gui.NIF_MESSAGE | win32gui.NIF_ICON | win32gui.NIF_TIP
nid = (self.hwnd, 0, flags, win32con.WM_USER+20, win32gui.LoadIcon(self.hinst, icon), 'tooltip')
win32gui.Shell_NotifyIcon(win32gui.NIM_ADD, nid)
win32gui.Shell_NotifyIcon(win32gui.NIM_MODIFY, (self.hwnd, 0, win32gui.NIF_INFO, win32con.WM_USER+20, win32gui.LoadIcon(self.hinst, icon), 'Balloon tooltip', msg, 200, title))
このコードを実行すると、タスクトレイにアイコンが表示されます。アイコン上にマウスを乗せると、指定したメッセージが表示されます。
このコードは、Python 2.xでテストされていますが、Python 3.xでも動作するはずです。