5

我正在尝试用 C# 编写应用程序来捕获按下按钮时出现的隐藏窗口的句柄(“显示隐藏的图标”)。

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

当我们按下显示它们的按钮(“显示隐藏图标”)时,我们有一个新窗口,其中包含所有图标:用绿色圆圈标记的隐藏窗口
在此处输入图像描述

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

当我使用 Spy++ 时,我找不到这个窗口,因为当我点击键盘上的任何其他键时,窗口就会消失。

所以我找到了按钮的句柄并使用了日志记录选项:
在此处输入图像描述

在日志记录结果中,我只看到了常规系统托盘工具栏的窗口句柄:
在此处输入图像描述

那么我怎样才能抓住隐藏窗口的句柄(我在我的问题的乞求中用绿色标记的那个,第一张图片)。

参考资料(我找到但对我没有帮助的链接):
如何使用 Microsoft Spy++ 捕获通知图标属性
获取有关 windows7 中隐藏托盘图标的信息

4

1 回答 1

4

我成功 !

我成功地用 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;
}
于 2015-11-18T15:38:24.787 回答