关注通过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();
有人有建议吗?
将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)