【问题标题】:Tray Icon stopped appearing after invoking Shell_NotifyIcon too frequently过于频繁地调用 Shell_NotifyIcon 后托盘图标停止出现
【发布时间】:2019-06-09 18:20:41
【问题描述】:

我正在显示这样的托盘通知弹出窗口

NOTIFYICONDATA ni = { 0 };
ni.cbSize = sizeof(ni);
ni.hWnd = gHwnd;
ni.uID = 1;
ni.hIcon = ghIcon;
ni.uFlags = NIF_ICON | NIF_INFO;
ni.dwInfoFlags = NIIF_INFO;
ni.uTimeout = 2000;
_tcscpy_s(ni.szInfo, _countof(ni.szInfo), _T("Test notification"));
_tcscpy_s(ni.szInfoTitle, _countof(ni.szInfoTitle), _T("myapp"));

Shell_NotifyIcon(NIM_ADD, &ni);

直到最近它还运行良好 - 托盘图标弹出了我的测试通知。然后在测试期间,我比每 2 秒更快地调用Shell_NotifyIcon,现在绝对不会显示来自我的应用程序的通知。重新启动没有帮助。唯一有帮助的是给我的可执行文件另一个名称或以另一个用户身份登录。

问题是 - 如何将我的应用恢复到工作状态,以便再次看到通知?

【问题讨论】:

  • 我可能进入了溢出区域,点击

标签: c windows winapi windows-10


【解决方案1】:

我以前从未听说过这个限制。

我有两个建议:

  • 删除HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify 中的图标值
  • 在注册表中搜索您的 exe 文件名并删除您不认识的条目(WER、AppCompat 等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 2020-10-28
    • 2012-02-17
    • 2016-04-29
    • 2016-12-03
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多