Уделить внимание объекту Internet Explorer, созданному с помощью C # - PullRequest
0 голосов
/ 07 марта 2012

У меня проблемы с управлением IE через C #.У меня почти все удалось.Но я не могу сосредоточиться на открытом проводнике.Когда я в 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(); У кого есть предложение?

Ответы [ 2 ]

1 голос
/ 21 апреля 2012

Приведите ie.Document как mshtml.HTMLDocument, затем установите фокус.

//Like so
InternetExplorer ie = new InternetExplorer();
((mshtml.HTMLDocument)ie.Document).focus();
0 голосов
/ 16 июля 2019

Это не надежно.Надежное решение с 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)
...