Удаление уведомлений из центра уведомлений Windows 10
Я использовал win32api в Python3 для создания приложения для Windows 10, которое поддерживает уведомления о тостах.
У меня уже есть значок в системном трее для моего приложения, я добавляю всплывающие уведомления, используя следующий код
def show_toast(self,msg,title):
flags = win32gui.NIF_ICON | win32gui.NIF_MESSAGE | win32gui.NIF_TIP
nid = (self.hwnd, 0, flags, win32con.WM_USER + 20, self.hicon,
"SpotiFind")
win32gui.Shell_NotifyIcon(win32gui.NIM_MODIFY, (self.hwnd, 0,
win32gui.NIF_INFO,
win32con.WM_USER + 20,
self.hicon, "Balloon Tooltip", msg, 200, title))
Все работает хорошо, но уведомление остается в области уведомлений, и я хочу удалить его автоматически... в соответствии с MSDN ( https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/ns-shellapi-_notifyicondataa)
Чтобы удалить всплывающее уведомление, укажите NIF_INFO и предоставьте пустую строку через szInfo.
Итак, я попробовал следующее
def _destroy_toast(self):
win32gui.Shell_NotifyIcon(win32gui.NIM_MODIFY, (self.hwnd, 0,
win32gui.NIF_INFO,
win32con.WM_USER + 20,
self.hicon, "Balloon Tooltip", "", 200, ""))
Это ничего не делает...
Заранее спасибо..
1 ответ
Я пытался реализовать это на С#, и у меня тоже были с этим проблемы. Способ, который работает для меня:
Shell_NotifyIcon(NIM_DELETE, nid)
Shell_NotifyIcon(NIM_CREATE, nid)
Во время удаления будут удалены все уведомления, как активные, так и отложенные.