VB .NET SHDocVw.InternetExplorer: всплывающее окно безопасности Windows
Здравствуйте, я использую безголовый режим Internet Explorer для выполнения автоматических задач в моем скрипте, но я сталкиваюсь с проблемой, когда иногда при просмотре некоторых страниц появляются всплывающие окна аутентификации, которые появляются для входа на страницу, но не через всплывающее окно HTML, а многое другое всплывающего окна.
Я хотел получить контроль над всплывающим окном, чтобы, когда оно всплывает, было видно сверху. Прямо сейчас это очень случайно, иногда оно отображается поверх всех программ, но иногда это происходит далеко в фоновом режиме, и затем автоматизация не выполняется, потому что пользователь не видел всплывающее окно.
Жесткое кодирование имени пользователя и пароля невозможно.
Кто-нибудь знает, как я могу управлять всплывающим окном (см. Захват во вложении) и в конечном итоге, по крайней мере, поместить его поверх экрана?
Благодарность!
1 ответ
Решение:
Public Sub New()
' This call is required by the designer.
InitializeComponent()
Automation.AddAutomationEventHandler(WindowPattern.WindowOpenedEvent, AutomationElement.RootElement,
TreeScope.Subtree,
Sub(UIElm, evt)
Dim element As AutomationElement = TryCast(UIElm, AutomationElement)
If element Is Nothing Then Return
Dim NativeHandle As IntPtr = CType(element.Current.NativeWindowHandle, IntPtr)
If InStr(element.Current.Name, "Windows Security") > 0 Then
AppActivate(element.Current.ProcessId)
End If
End Sub)
End Sub