pystray windows
Verfasst: Mittwoch 7. Juni 2023, 14:27
Ich benutze pystray um ein Icon in der Taskleiste anzeigen zu lassen. Mein Code:
Unter meinem Debian, wo ich auch drauf programmiere läuft das Script ohne Probleme und es wird mir mein Image angezeigt. Unter Windows bricht das Programm ab. Ich dachte zu erst, vielleicht liegt es da dran, das meine Imagedatei ein .png ist und Windows aber eine .bmp Datei erwartet. Aus dem Grund sieht man im Code ja auch, das ich aus Testzwecken einfach mal in .bmp umgewandelt habe. Bekomme aber leider die gleiche Fehlermeldung.
Kann da jemand helfen?
Code: Alles auswählen
import pystray
from PIL import Image, ImageDraw
from iptool import IpInfo
import threading
import time
def after_click ():
quit ()
def loop (ipinfo, icon):
while True:
ipinfo.get_info ()
convert = Image.open(ipinfo.flag_path)
convert.save (ipinfo.flag_path+'.bmp')
icon.icon = Image.open(ipinfo.flag_path+'.bmp')
time.sleep (1)
if __name__ == '__main__':
ipinfo = IpInfo ()
ipinfo.get_info ()
convert = Image.open(ipinfo.flag_path)
convert.save (ipinfo.flag_path+'.bmp')
icon = pystray.Icon("flag", Image.open(ipinfo.flag_path+'.bmp'), "",
menu=pystray.Menu(
pystray.MenuItem("Exit", after_click)))
thread = threading.Thread(target=loop, args=(ipinfo, icon,))
thread.start()
icon.run ()
Code: Alles auswählen
Exception in thread Thread-2 (setup_handler):
Traceback (most recent call last):
File "C:\Users\u0\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 1038, in _bootstrap_inner
self.run()
File "C:\Users\u0\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\u0\AppData\Local\Programs\Python\Python311\Lib\site-packages\pystray\_base.py", line 396, in setup_handler
self.visible = True
^^^^^^^^^^^^
File "C:\Users\u0\AppData\Local\Programs\Python\Python311\Lib\site-packages\pystray\_base.py", line 183, in visible
self._update_icon()
File "C:\Users\u0\AppData\Local\Programs\Python\Python311\Lib\site-packages\pystray\_win32.py", line 72, in _update_icon
self._assert_icon_handle()
File "C:\Users\u0\AppData\Local\Programs\Python\Python311\Lib\site-packages\pystray\_win32.py", line 349, in _assert_icon_handle
self._icon_handle = win32.LoadImage(
^^^^^^^^^^^^^^^^
File "C:\Users\u0\AppData\Local\Programs\Python\Python311\Lib\site-packages\pystray\_util\win32.py", line 203, in _err
raise ctypes.WinError()
OSError: [WinError 0] Der Vorgang wurde erfolgreich beendet.