win10toast error : pywintypes.error: (-2147467259, 'Shell_NotifyIcon', 'Unspecified error')

win10toast error : pywintypes.error: (-2147467259, 'Shell_NotifyIcon', 'Unspecified error')

我正在尝试 return 函数中的 current_time 或 current_time +1,我正在使用 win10toast。我的代码之前运行良好,只是突然停止运行。我没有做任何事情或更改任何设置。当运行以下代码时:

from datetime import datetime, timedelta
from win10toast import ToastNotifier

toast = ToastNotifier()
def At_Time():
    global Input_time, Ahead_time
    At_time = datetime.now()
    Ahead_time = (At_time + timedelta(minutes=1))

    if timedelta(seconds=At_time.second) < timedelta(seconds=30):
        L = 'Less Than 30 secs... Not changing Current_time'
        infoL = str('Current Time:  ' + At_time.strftime("%H:%M:%S") + '\n' + "Input Time:  " + At_time.strftime("%H:%M:%S"))
        toast.show_toast(title=L, msg=infoL, duration=7, threaded= True)
        Input_time = At_time.strftime("%H:%M")
        return Input_time
    else:
        M = 'More than 30 secs... Adding 1 Min to Current_time'
        infoM = str("Current Time:  " + At_time.strftime("%H:%M:%S") + '\n' + "Input Time:  " + Ahead_time.strftime("%H:%M:%S"))
        toast.show_toast(title=M, msg=infoM, duration=7, threaded= True)
        Input_time = Ahead_time.strftime("%H:%M")
        # meeting_row = Row
        return Input_time

At_Time()

当运行这个时,我现在收到以下错误:

`Traceback (most recent call last):
     File "C:\Program Files\Python39\lib\threading.py", line 954, in _bootstrap_inner self.run()
     File "C:\Program Files\Python39\lib\threading.py", line 892, in run self._target(*self._args, **self._kwargs)
     File "C:\Program Files\Python39\lib\site-packages\win10toast\__init__.py", line 106, in 
   show_toast Shell_NotifyIcon(NIM_ADD, nid)
 pywintypes.error: (-2147467259, 'Shell_NotifyIcon', 'Unspecified error')`

具体来说,这是错误:

pywintypes.error: (-2147467259, 'Shell_NotifyIcon', 'Unspecified error')

除了一个 之外,我在任何地方都找不到报告的这个问题,解决方案说要使用

icon_path= None

这将不起作用,因为它已经是参数的默认值。我假设该错误与 Shell_NotifyIcon(NIM_ADD, nid) 或 Win API 错误有关。这个 bug/issue 没有被提及。我能找到这个错误的原因,或者直接修复吗?

感谢您的帮助和宝贵的时间...

编辑:此错误在重新启动后得到修复。同样在重新启动期间,Windows 得到了一个

"Updating Windows, Do Not Turn Off PC"

,即使我暂停了 Windows 更新。但是,仍然有人得到了永久修复,甚至找到了发生这种情况的原因,以避免其他用户将来出现任何问题??

最后,高手能解释一下吗。。我们如何通过 win10toast 同时显示多个通知,而不会出现 Registered Class 错误? (可选)

我无法用这段代码重现你的问题,但在this线程中出现了类似的问题,我认为这是由python脚本同时触发win10toast引起的。那么,您可以参考:Stopping all automatic updates Windows 10 自动停止Win10 Update

然后,您可以参考:Stopping all automatic updates Windows 10 to stop Win10 Update automatically.自动停止Win10更新

最后,您不能同时显示多个通知。当一个通知处于活动状态时,不会触发第二个通知。如果需要,您可以缩短第一次敬酒的时间。将第一个 toast 的持续时间设置为 3 秒,这样就可以了。

关于以后是否会同时显示多条通知,微软目前并没有说清楚,future.I觉得可以反馈需求中好像也没有添加给微软。