vb.net sendKeys в мое приложение, когда приложение свернуто

я хочу отправить ключи в свой адрес, когда моя форма свернута и не находится в фокусе

SendKeys.Send("{TAB}")

работает, но только когда моя форма находится в фокусе.
и это очень не удобно, если пользователь хочет свернуть приложение, то приложение отправляет ключи везде, я хочу, чтобы приложение отправляло ключи только к моему приложению.

Итак, мне нужна функция, которая выглядит так:

Dim wb As New WebBrowser
wb.Navigate(urll)
WaitToWb()
'Send Keys To WebBrowser
SendKeysToBrowser(Me.Handle, wb, "{TAB}")

мне нужно, чтобы функция отправляла ключи только в мой веб-браузер, если мое приложение свернуто, ключи отправляются только в элемент управления веб-браузером.

есть функция, которая может отправлять ключи только моему приложению, когда мое приложение свернуто?


person Nmmmm    schedule 30.10.2012    source источник
comment
Если вы контролируете приложение, которому вы отправляете нажатия клавиш, вы можете просто реализовать настоящий интерфейс автоматизации. Вам нужно прибегать к SendKeys только в том случае, если вы не контролируете целевое приложение. Если цель на самом деле находится в том же приложении, что и отправитель, то это еще проще.   -  person David Heffernan    schedule 30.10.2012
comment
да, это проще, но у меня нет функции, которая может отправлять ключи, когда мое приложение свернуто   -  person Nmmmm    schedule 30.10.2012
comment
Давайте разберемся. Вы действительно хотите подделать ввод с клавиатуры в окно, которое находится в том же приложении?   -  person David Heffernan    schedule 30.10.2012
comment
да. я хочу отправить ключи в управление веб-браузером в своем приложении, и когда мое приложение свернуто, оно по-прежнему отправляет ключи только моему приложению.   -  person Nmmmm    schedule 30.10.2012
comment
Почему бы вам просто не вызвать методы элемента управления WebBrowser, чтобы выполнить работу? Почему вы считаете, что должны подделывать входные данные?   -  person David Heffernan    schedule 30.10.2012
comment
я пытался использовать webbrowser.document.getelementbyid, но этот конкретный сайт (google) заблокировал доступ к результирующему div, поэтому я использую ключи отправки и активный элемент webbrowser для получения контента из div, он работает, но когда я свернуть мое приложение...   -  person Nmmmm    schedule 30.10.2012
comment
Хм, теперь мы вышли из моей зоны комфорта. Но я был бы очень удивлен, если бы вы не могли использовать DOM, чтобы делать то, что вам нужно. Чтобы подделать ввод, вы можете попробовать использовать PostMessage или SendMessage с WM_KEYDOWN и WM_KEYUP, но я не удивлюсь, если это не удастся. На вашем месте я бы задал здесь вопрос о подходе, основанном на DOM. Это похоже на вопрос XY для меня. В конечном итоге вы хотите прочитать информацию с веб-страницы. Но вы задали вопрос о фальшивом вводе. Я бы рекомендовал задать вопрос о вашей основной цели.   -  person David Heffernan    schedule 30.10.2012
comment
Я уже спрашивал: stackoverflow.com /questions/13136067/ Google не позволяет получить все результаты поиска. но с помощью sendkeys (tab) и текущего активного элемента веб-браузера вы можете получить атрибут активного элемента (href) и добавить его в список, спасибо за идеи. Я попробую и обновлю, если получится.   -  person Nmmmm    schedule 30.10.2012
comment
я пробовал все, я хотел бы хороший пример отправки ключей через sendmessage и postmessage   -  person Nmmmm    schedule 31.10.2012