-
Star
(105)
You must be signed in to star a gist -
Fork
(22)
You must be signed in to fork a gist
-
-
Save wontoncc/1808234 to your computer and use it in GitHub Desktop.
# -- coding: utf-8 -- | |
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",title,200,msg)) | |
# 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(msg, title) |
In case you have "win32api" module missing, try pip install pypiwin32
.
Can anyone please tell me how to add a click bind to this notification. I want to open a website or do some task on the click and I am not able to bind it in the message map. Please help!
Never mind guys. Found it! https://github.com/jithurjacob/Windows-10-Toast-Notifications/pull/38
Hi guys, I've created this as an easy to use package
https://github.com/jithurjacob/Windows-10-Toast-Notifications
This is awesome! Thanks.
Hi guys, I've created this as an easy to use package
https://github.com/jithurjacob/Windows-10-Toast-Notifications
that is indeed awesome - thank you!
working on windows 10
working on windows 11
working on Python 3.10 with windows 11
working on Python 3.10 with Windows 11 Pro for Workstations Version 10.0.22621 Build 22621
Works great on Windows 10. Thanks man!