關於Qt類中QsystemTrayIcon類在Windows 10 上的問題

問題描述

Qt中有一個現成的類–QsystemTrayIcon類可以實現在系統托盤圖標上冒泡彈出提示消息的功能,但是這個類使用時有一個問題:在Windows 10 或 Windows Server 2016上會快速彈出提示消息時,導致進程explorer.exe和ShellExperienceHost.exe內存和句柄上漲,進而導致explorer.exe不斷重啓,時間不定。

原因分析

用proces explore工具分析兩個進程的句柄發現,ShellExperienceHost.exe打開了1000多個系統默認的提示音文件,該文件以.wav爲後綴,所以分析的結論就是Windows 10 或 Windows Server 2016在有進程冒泡彈出提示時候,會同時發出提示聲音,而之前的系統則不會發出提示聲,只冒泡,所以使得軟件在Win 7上毫無問題,在Win 10 上則有此問題。

解決方案

1、自定義和實現一個彈出提示窗口方法。
2、在Windows 10 或 Windows Server 2016禁止聲音特效,這樣做不會影響電腦正常的發出聲音。

後續

如果有網友遇到同樣的問題,希望能給您一個參考和方向,如果您有更好的方法,歡迎留言告訴我,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章