如何隐藏 windows 显示隐藏系统托盘图标的 windows 句柄

How to get hidden windows handle of the windows that show hidden system tray icons

我正在尝试用 C# 编写应用程序,以捕获按下按钮 ("Show hidden icons") 时出现的隐藏 windows 的句柄。

当我们不显示所有通知区域时,我们隐藏了系统托盘图标。

当我们按下显示它们的按钮 ("Show hidden icons") 时,我们有一个新的 window,里面的所有图标:

隐藏的windows绿色圆圈

我怎样才能抓住这个隐藏的 window 的句柄?

当我使用 Spy++ 时我找不到这个 window 因为当我点击键盘上的任何其他键时 windows 消失了。

所以我找到了按钮的句柄并使用了日志记录选项:

在记录结果中我只看到 windows 个常规系统托盘工具栏的句柄:

那么我怎样才能抓住隐藏的句柄window(我在提问时用绿色标记的那个,第一张图)。

参考资料(我找到但对我没有帮助的链接):
How to capture Notification icons properties using Microsoft Spy++
Get information about hidden tray icons in windows7

我成功了!

我用 Spy++ 成功捕获了它:

代码解:

static IntPtr GetHiddenSystemTrayHandle()
{
    IntPtr hWndTray = User32.FindWindow("NotifyIconOverflowWindow", null);
    if (hWndTray != IntPtr.Zero)
    {
            if (hWndTray != IntPtr.Zero)
            {
                // Windows caption "Overflow Notification Area"
                hWndTray = User32.FindWindowEx(hWndTray, IntPtr.Zero, "ToolbarWindow32", null);
                return hWndTray;
            }
    }

    return IntPtr.Zero;
}