WebControl在一个单独的过程中重新审视了焦点

时间:2018-03-16 09:07:06

标签: browser focus webbrowser-control web-controls twebbrowser

我需要在我的抓取工具中处理AJAX,并且更喜欢使用系统浏览器,尽管我可能不得不改变主意。我的抓取程序通常可以在后台运行,而用户可以处理其他应用程序中的其他内容。

无论如何 - 由于WebControl在处理泄漏内存的JS库时会泄漏内存 - 这会导致爬虫快速耗尽内存。 (很多SO都有关于此的帖子。)

所以我创建了一个使用单独的"虚拟"带有输入/输出的webcontrol的小型可执行文件。这是由爬虫作为单独的进程启动的。这部分看起来效果很好。根据需要多次创建/销毁此子进程。

然而,这个带有嵌入式IE的调用过程专注于每个页面加载(至少如果JS代码调用焦点),这意味着用户是否正在进行工作。单词或其他 - 键盘焦点丢失。

我已经将嵌入式IE窗口移出屏幕,但是我不能让它在传统意义上隐藏,因为嵌入式IE停止工作。

我在调用导航之前尝试禁用所有父控件 - 但它对我不起作用。

我还没试过任何想法?也许以某种方式捕获一个关注webcontrol并忽略它的Windows消息?或某些东西,所以我可以立即重新聚焦早期控制焦点?

我目前使用的是Delphi - 但这个问题适用于我之前对此事的调查中的VB,C#.Net等。我将采用任何语言的解决方案和想法。

0 个答案:

没有答案