Итак ... На случай, если кому-то будет интересно.
- InvokeMember не имеет ничего для нажатия клавиш.
- Невозможно отправить ключи на элемент управления.
- Существует способ "отправить ключи" с помощью iQuery, который ... является поддельным и плохо продуманным. Это не помогает в моем случае. И когда он делает «отправить ключ», «InvokeMember (« OnKeyUp »)» также работает.
Что возможно? Можно отправлять ключи в окно ... Теоретически можно отправлять ключи в неактивное окно (используя SendMessage () и PostMessage ()), но практически никто не сделал этого это с WinXP & x32 раза ...
Я не пробовал себя, но есть люди, которые смогли отправить ключи, используя «SendInput». Но это все равно бесполезно, потому что функция может отправлять только ключи в активное окно.
Итак ... SendKeys.Send (который, я полагаю, является оберткой для SendInput) все еще лучший способ обойти.
Решение
Я создал форму (окно) для своего веб-браузера. Я инициализирую его, но не использую «Показать». Затем я просто делаю эту форму активной прямо перед «SendKeys.Send» (не забудьте также сосредоточиться как на элементе (внутри элемента управления), так и на элементе управления (внутри формы). Так как формы для показа нет, пользователь ничего не замечает, а ключи переходят в правое окно. Если это необходимо, можно сохранить дескриптор окна, которое было активным ранее, и снова сделать его активным после отправки (чтобы фокус не терялся).
Резюме
Хотя я согласен с этим решением и буду его использовать, оно далеко от совершенства ... Если кто-нибудь найдет что-то лучшее, пожалуйста, дайте мне знать (даже в далеком будущем).