gpt4 book ai didi

c++ - 在 IE 中 fork 或复制用户浏览器 session

转载 作者:太空狗 更新时间:2023-10-29 23:10:25 24 4
gpt4 key购买 nike

是否可以在 Internet Explorer 插件中 fork 用户 session (或做类似的事情)?

当用户单击工具栏中的按钮时,我想处理用户所在的页面。为了避免打扰用户浏览,我想“复制”所有内容,以便我可以在后台解析和处理页面。处理过程可能涉及加载 Google 搜索结果链接的内容(如果按钮是在此处点击的)。

所以 - 我基本上想要的是模仿 Ctrl+N 但对用户隐藏窗口,这样他们就不会被打扰。

如您所见,如果您在 http://www.snee.com/xml/crud/posttest.html 上填写并提交表格然后按Ctrl+N,发布的所有内容仍会出现在新窗口中,但不会发布两次数据。

我正在考虑以某种方式复制 IWebBrowser2,但是:

  • 我不确定这是否可行(我无法在 MSDN 上找到任何信息)
  • 我不知道它是否也复制 session 。

创建 IWebBrowser2 的新实例并简单地导航到当前 URL 不是有效的解决方案,因为 POST - 变量当然不会被保留。

最佳答案

BHO 或插件可以工作。有很多选择可以获取源代码,有点。选择你的平衡。查找 IDocHostUIHandler 以改变行为。 IHTMLElementCollection 在浏览器中解析页面。目前我能想到的最简单的事情是......

将当前内容保存到流中。与获取/查看源代码相同。

// #include HRESULT SaveDocumenttoStream(IWebBrowser* pWebBrowser,                              IStream* pStream){HRESULT hr;IDispatch* pHtmlDoc = NULL;IPersistStreamInit* pPersistStreamInit = NULL;hr = pWebBrowser->get_Document( &pHtmlDoc );if ( SUCCEEDED(hr) && pHtmlDoc){  // Query for IPersistStreamInit.  hr = pHtmlDoc->QueryInterface( IID_IPersistStreamInit,                               (void**)&pPersistStreamInit );  if ( SUCCEEDED(hr) )  {      hr = pPersistStreamIni->Save(, True);     pPersistStreamInit->Release();   }  pHtmlDoc->Release();}

你提供浏览器和stream.HTH

--

迈克尔

关于c++ - 在 IE 中 fork 或复制用户浏览器 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/264642/

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