Y
Y
Yura Milevsky2022-01-31 12:34:06
Python
Yura Milevsky, 2022-01-31 12:34:06

How to make a tray notification through Python?

I need to make a tray notification. Code like this:

Huge code
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")

DOES NOT WORK! It just creates some sort of tray application called tooltip and that's it. Nothing else happens.
Here is another non-working code
from win10toast import ToastNotifier

toast = ToastNotifier()

toast.show_toast("Проверяем...","Всё гуд!",duration=10,icon_path="vk.ico")

It also does the same thing as the previous code, just a tooltip and nothing else.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
H
Hemul GM, 2022-01-31
@Hackerman1

Everything works here. Check the work of notifications in Windows. For example, you have Do Not Disturb turned on. "Tray notification" for win10 is a notification - a window that is displayed and hits the notification center. In Win7 there will be a pop-up message (hint).

A
Alexander Z, 2022-02-03
@alexzav2

tell
me from win32api import *
from win32gui import *
import win32con
from pip are not installed - slipped the files?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question