WebControl в отдельном процессе краже фокуса вновь
Мне нужно обработать AJAX в моем сканере и я предпочел бы использовать системный браузер, хотя мне, возможно, придется передумать. Моя программа на гусеничном ходу обычно работает в фоновом режиме, в то время как пользователь может работать с другими вещами в других приложениях.
В любом случае - поскольку WebControl теряет память при обработке JS-библиотек, которые производят утечку памяти, - это может привести к быстрому исчерпанию памяти искателем. (Много ТАК сообщений об этом.)
Поэтому я создал решение, которое использует отдельный "фиктивный" маленький исполняемый файл с webcontrol, который принимает ввод / вывод. Это запускается сканером как отдельный процесс. Эта часть, кажется, работает отлично. Этот дочерний процесс создается / уничтожается столько раз, сколько необходимо.
Тем не менее, этот вызываемый процесс со встроенным IE захватывает фокус на каждой загрузке страницы (по крайней мере, если, например, JS-код вызывает фокус), что означает, что пользователь выполняет работу, например, в Word или что-то еще - фокус клавиатуры теряется.
Я уже переместил встроенное окно IE за пределы экрана, но я не могу сделать его невидимым в традиционном смысле, поскольку встроенный IE перестает работать.
Я пытался отключить все родительские элементы управления, прежде чем вызывать навигацию, но у меня это не работает.
Какие идеи я не пробовал? Может быть, как-то поймать сообщение Windows, которое фокусирует веб-контроль и игнорировать его? ИЛИ что-нибудь, чтобы я мог немедленно перефокусировать предыдущий элемент управления, на котором был фокус
В настоящее время я использую Delphi - но этот вопрос применим к VB, C# .Net и т. Д. Из моих предыдущих исследований по этому вопросу. Я приму решение и идеи на любом языке.