【问题标题】:Refresh Internet Explorer_Server from handler从处理程序刷新 Internet Explorer_Server
【发布时间】:2013-01-21 14:43:00
【问题描述】:

是否可以强制 Internet Explorer_Server 刷新它的内容? 我所拥有的是外部应用程序中该对象的处理程序(例如在我的similar 问题中)

我在 CodeProject 上找到了一个很好的教程,它展示了如何在 MFC 中执行此操作,但我想从 C# 中执行此操作。

我的问题是:如何刷新托管在外部应用程序中的 Internet Explorer_Server

【问题讨论】:

    标签: c# winapi pinvoke ihtmldocument2


    【解决方案1】:

    我现在无法对其进行测试,但我假设您已经在 C# 项目中引用了 mshtml 程序集?

    我敢打赌,如果您尝试使用 IHTMLDocument2.open 方法,您可能会找到一种方法来做到这一点。我快要去机场了,所以我现在不能用他做实验或测试它。但是这个链接有一些有用的信息(注意:虽然链接指的是win API代码,但该代码是通过mshtml程序集中的IHTMLDocuement2接口在.net实现中建模的)。

    msdn on IHTMLDocument2.open

    我很幸运地将 C# 中的 mshtml 程序集用于其他操作,尽管它需要一些工作和反复试验。特别注意 _BSTR 的参数为 _SELF,并传递当前的 uri。

    【讨论】:

    • 感谢您的精彩提示 :) 我几乎工作了。在 C# 中,我必须将 4 个参数传递给该函数 (string url, object name, object features, object replace)。第一个参数很简单,但我对其他 3 个参数有疑问,因为如果我通过 "" 页面将在新的 IE 窗口中打开,而不是在该 Internet Explorer_Server 控件中打开。
    • 我认为这是您传递“_SELF”参数的地方。有兴趣知道你最终是如何解决这个问题的。 . .
    • 我的意思是,从字面上看,传递字符串参数“_SELF”
    • 感谢您的提示 :) 我花了将近 2 天的时间寻找一种方法来做到这一点。我的想法是在特定元素上调用 click 事件,因为我只需要一个表来刷新。我设法解决了我的问题,现在我正在改进我的代码以显示该解决方案。由于跨线程访问,我无法进入我的 iframe。给我一些时间,我会写我的解决方案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2011-03-15
    • 2021-11-07
    • 2012-09-30
    • 2012-01-27
    • 2015-07-16
    相关资源
    最近更新 更多