Solución:
Con la ayuda del pywin32
biblioteca puede usar el siguiente código de ejemplo que encontré aquí:
from win32api import *
from win32gui import *
import win32con
import sys, os
import struct
import time
class WindowsBalloonTip:
def __init__(self, title, msg):
message_map = {
win32con.WM_DESTROY: self.OnDestroy,
}
# Register the Window class.
wc = WNDCLASS()
hinst = wc.hInstance = GetModuleHandle(None)
wc.lpszClassName = "PythonTaskbar"
wc.lpfnWndProc = message_map # could also specify a wndproc.
classAtom = RegisterClass(wc)
# Create the Window.
style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
self.hwnd = CreateWindow( classAtom, "Taskbar", style,
0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
0, 0, hinst, None)
UpdateWindow(self.hwnd)
iconPathName = os.path.abspath(os.path.join( sys.path[0], "balloontip.ico" ))
icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
try:
hicon = LoadImage(hinst, iconPathName,
win32con.IMAGE_ICON, 0, 0, icon_flags)
except:
hicon = LoadIcon(0, win32con.IDI_APPLICATION)
flags = NIF_ICON | NIF_MESSAGE | NIF_TIP
nid = (self.hwnd, 0, flags, win32con.WM_USER+20, hicon, "tooltip")
Shell_NotifyIcon(NIM_ADD, nid)
Shell_NotifyIcon(NIM_MODIFY,
(self.hwnd, 0, NIF_INFO, win32con.WM_USER+20,
hicon, "Balloon tooltip",msg,200,title))
# self.show_balloon(title, msg)
time.sleep(10)
DestroyWindow(self.hwnd)
def OnDestroy(self, hwnd, msg, wparam, lparam):
nid = (self.hwnd, 0)
Shell_NotifyIcon(NIM_DELETE, nid)
PostQuitMessage(0) # Terminate the app.
def balloon_tip(title, msg):
w=WindowsBalloonTip(title, msg)
if __name__ == '__main__':
balloon_tip("Title for popup", "This is the popup's message")
Recientemente usé el paquete Plyer para crear notificaciones multiplataforma sin dolor, usando el Notification
fachada (tiene muchas otras cosas interesantes que vale la pena echarle un vistazo).
Bastante fácil de usar:
from plyer.utils import platform
from plyer import notification
notification.notify(
title="Here is the title",
message="Here is the message",
app_name="Here is the application name",
app_icon='path/to/the/icon.' + ('ico' if platform == 'win' else 'png')
)
Aquí está la forma simple de mostrar notificaciones en Windows 10 usando Python: módulo win10toast.
Requisitos:
- pypiwin32
- herramientas de configuración
Instalación:
>> pip install win10toast
Ejemplo:
from win10toast import ToastNotifier
toaster = ToastNotifier()
toaster.show_toast("Demo notification",
"Hello world",
duration=10)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)