有点奇怪(具有挑战性?)的问题。是否可以从外部应用程序以编程方式访问打开的浏览器的选项卡?我意识到这是一个模糊的问题,但请听我说:
我正在尝试创建的是一个“Gmail 聊天通知程序”应用程序,当存在未答复的聊天消息时,它会在 Windows 系统托盘中闪烁通知图标。目前,据我所知,唯一内置的 Gmail 聊天通知是:
- 启用声音(我不喜欢)
- 观察交替闪烁的“Gmail”/“Blah 说...”消息的窗口/选项卡/页面标题。
#2 的问题是:当浏览器窗口最小化,并且 Gmail 选项卡不是浏览器中的活动选项卡时,窗口标题不会改变,我也不会注意到新的聊天消息。
所以我想为我创建一个监视标签标题的应用程序。(所有选项卡标题,不仅仅是窗口标题,它只是活动选项卡标题。)我创建了一个概念验证 C# 应用程序,通过枚举活动 Windows 进程并观察闪烁的“Blah”来检测未答复的聊天消息说...”在窗口标题中:
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 系统托盘集成,而不仅仅是存在于浏览器沙箱中)。
任何人都可以帮助我开始吗?提前非常感谢。