Вы должны изменить исходный код библиотеки, чтобы сделать это.Перейдите в папку, в которую была установлена библиотека, и откройте файл «__init__.py».Вверху, после того, как все импорта "win32gui" помещены, напишите from win32gui import NIIF_NOSOUND
.
После этого перейдите к строке 107, и вы должны увидеть этот фрагмент кода:
Shell_NotifyIcon(NIM_MODIFY, (self.hwnd, 0, NIF_INFO,
WM_USER + 20,
hicon, "Balloon Tooltip", msg, 200,
title))
Послепараметр "title", поставьте "NIIF_NOSOUND", он должен выглядеть следующим образом:
Shell_NotifyIcon(NIM_MODIFY, (self.hwnd, 0, NIF_INFO,
WM_USER + 20,
hicon, "Balloon Tooltip", msg, 200,
title, NIIF_NOSOUND))
Если вы хотите сделать это в качестве альтернативы, вы должны дополнительно изменить исходный код, вы можете добавить новый аргумент в show_toast
метод.Примерно так:
# line 121
def show_toast(self, title="Notification", msg="Here comes the message",
icon_path=None, duration=5, threaded=False, sound=False):
А также дополнительно отправьте параметр "sound":
# line 130
if not threaded:
self._show_toast(title, msg, icon_path, duration, sound)
else:
if self.notification_active():
# We have an active notification, let is finish so we don't spam them
return False
self._thread = threading.Thread(target=self._show_toast, args=(title, msg, icon_path, duration, sound))
self._thread.start()
return True
Затем добавьте аргумент в метод "hidden" _show_toast
:
# line 63
def _show_toast(self, title, msg,
icon_path, duration, sound):
И сделайте оператор if else, чтобы проверить, нужно ли добавлять флаг «NIIF_NOSOUND»:
# line 107
Shell_NotifyIcon(NIM_ADD, nid)
data = (self.hwnd, 0, NIF_INFO,
WM_USER + 20,
hicon, "Balloon Tooltip", msg, 200,
title)
if not sound:
data = data + (NIIF_NOSOUND,)
Shell_NotifyIcon(NIM_MODIFY, data)
Этот параметр ожидает комбинацию InfoFlags, которые изменяют поведение и внешний вид уведомления.Узнайте больше о NIIF_NOSOUND флаге и других флагах.Здесь вы можете увидеть, какие флаги «NIIF» доступны в документации «pywin32» pywin32 .
Подробнее о параметрах функции Shell_NotifyIcon
можно узнать здесь pywin32 Shell_NotifyIcon .
Второй параметр функции Shell_NotifyIcon
- это кортеж, представляющий объект "PyNOTIFYICONDATA", который принимает различные параметры, подробнее об этом объекте можно узнать здесь pywin32 PyNOTIFYICONDATA .
Примечание: это работало для меня в Windows 10.