-
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) |
thanks man, that worked for me!
when I am running the same code I am not getting any type of notification only.
I am using Python 3.5 on Windows 10.
Hi guys, I've created this as an easy to use package
https://github.com/jithurjacob/Windows-10-Toast-Notifications
here to say thank you.
Works great on Windows 10. Thanks man!
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
Can somebody please fork a copy in which notifications are persistent? I know this would include registering the program outside of the class, and unregistering it with with atexit, but I am unable to do so myself.