gpt4 book ai didi

browser - 从外部应用程序枚举浏览器选项卡

转载 作者:行者123 更新时间:2023-12-01 05:47:07 26 4
gpt4 key购买 nike

有点奇怪(具有挑战性?)的问题。是否可以从外部应用程序以编程方式访问打开的浏览器的选项卡?我意识到这是一个模糊的问题,但请听我说:

我正在尝试创建一个“Gmail 聊天通知程序”应用程序,当存在未答复的聊天消息时,该应用程序会在 Windows 系统托盘中闪烁通知图标。目前,据我所知,仅有的内置 Gmail 聊天通知是:

  • 启用声音(我不喜欢)
  • 观看交替闪烁的“Gmail”/“废话说...”消息的窗口/标签/页面标题。

  • #2 的问题是:当浏览器窗口最小化,并且 Gmail 标签不是 时事件 浏览器中的选项卡,窗口标题不会改变,我没有注意到新的聊天消息。

    所以我想创建一个应用程序来为我观看标签标题。 (所有选项卡标题,而不仅仅是窗口标题,它只是事件选项卡标题。)我创建了一个概念验证 C# 应用程序,通过枚举事件的 Windows 进程并观察闪烁的“废话”来检测未答复的聊天消息说...”在窗口标题中:
    Process[] procs = Process.GetProcesses();
    IntPtr hWnd;
    foreach (Process proc in procs)
    if ((hWnd = proc.MainWindowHandle) != IntPtr.Zero)
    if (proc.MainWindowTitle.IndexOf(" says… ") >= 0)
    ...

    但明显的问题是,当 Gmail 选项卡不是事件/聚焦选项卡时,它不起作用(因为它只查看窗口标题)。所以我需要一些可以深入挖掘并查看标签标题的东西。

    我对任何事情都持开放态度。我一直认为可能有效的是找到一种以某种方式枚举浏览器选项卡的方法(MDI 子窗口?* 手指交叉*),但也许这甚至不太可能:) 如果有其他解决方案,我也愿意接受其他解决方案使用 Firefox 插件或其他东西来做到这一点的方法(但与 Windows 系统托盘集成会很好,而不仅仅是存在于浏览器沙箱中)。

    任何人都可以帮助我开始吗?非常感谢。

    最佳答案

    一般是不可能的。浏览器选项卡不必是 MDI 子窗口(事实上,它们几乎肯定不是)。您不知道任意浏览器的窗口树,因此您无法解析它并找出选项卡(即使您知道特定浏览器的窗口树,这绝对是一个实现细节,即使在次要版本之间也可能发生变化)。事实上,您甚至不知道浏览器是否为选项卡使用单独的 Win32 窗口句柄,因为它的主窗口可能只有一个句柄,并且自己在内部绘制所有内容(例如 Qt 和 WPF 应用程序就是这样做的,我相信Opera 尤其如此,Safari 可能也是如此)。

    对此的任何解决方案都必须是特定于浏览器的。您可能可以为 IE 和 Firefox 编写相应的插件,以将该信息传达给您的应用程序(尽管 Firefox 插件是沙盒的,所以我不确定它们是否甚至能够执行 IPC)。我没有看到 Opera、Safari 或 Chrome 的任何选项。

    关于browser - 从外部应用程序枚举浏览器选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1112598/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com