关注通过C#创建的Internet Explorer对象

本文关键字:Internet Explorer 对象 创建 | 更新日期: 2023-09-27 18:27:14

我在通过C#控制IE时遇到了一些问题。我几乎什么都搞定了。但我似乎无法将焦点设置为打开的explorer。当我在VS 2010中时,它是有效的,但当我直接运行exe文件时,情况并非如此。

using SHDocVw;
.
<code>
.
InternetExplorer ie = new InternetExplorer();
IWebBrowserApp wb = (IWebBrowserApp)ie;
.
<code>
.   
wb.Visible = true;
wb.Document.focus();

我的意思是wb.Document.focus();会把焦点放在IE上,但这不起作用。也尝试过eb.Document.focus();有人有建议吗?

关注通过C#创建的Internet Explorer对象

将ie.Document转换为mshtml。HTMLDocument然后设置焦点。

//Like so
InternetExplorer ie = new InternetExplorer();
((mshtml.HTMLDocument)ie.Document).focus();

它不可靠。可靠的解决方案是使用API(我的发现:-):

vb:

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdSHow As Long) As Long
Dim ie As SHDocVw.InternetExplorerClass
ie = New SHDocVw.InternetExplorer : Application.DoEvents()

'the reliable focus:
ShowWindow(ie.HWND, 0) : ShowWindow(ie.HWND, 1)