WebControl в отдельном процессе краже фокуса вновь

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

В любом случае - поскольку WebControl теряет память при обработке JS-библиотек, которые производят утечку памяти, - это может привести к быстрому исчерпанию памяти искателем. (Много ТАК сообщений об этом.)

Поэтому я создал решение, которое использует отдельный "фиктивный" маленький исполняемый файл с webcontrol, который принимает ввод / вывод. Это запускается сканером как отдельный процесс. Эта часть, кажется, работает отлично. Этот дочерний процесс создается / уничтожается столько раз, сколько необходимо.

Тем не менее, этот вызываемый процесс со встроенным IE захватывает фокус на каждой загрузке страницы (по крайней мере, если, например, JS-код вызывает фокус), что означает, что пользователь выполняет работу, например, в Word или что-то еще - фокус клавиатуры теряется.

Я уже переместил встроенное окно IE за пределы экрана, но я не могу сделать его невидимым в традиционном смысле, поскольку встроенный IE перестает работать.

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

Какие идеи я не пробовал? Может быть, как-то поймать сообщение Windows, которое фокусирует веб-контроль и игнорировать его? ИЛИ что-нибудь, чтобы я мог немедленно перефокусировать предыдущий элемент управления, на котором был фокус

В настоящее время я использую Delphi - но этот вопрос применим к VB, C# .Net и т. Д. Из моих предыдущих исследований по этому вопросу. Я приму решение и идеи на любом языке.

0 ответов

Другие вопросы по тегам