Форум » » Потеря фокуса » Ответить

Потеря фокуса

slalom: Собственно заметил - когда идет запрос балланса то теряется фокус текущего приложения. При серфинге в интернете или просмотре не критично, но если открыта игра - она сворачивается. Данную проблему можно как-то решить?

Ответов - 5

SiBear: К сожалению, эту проблему решить не удается. Фокус перехватывают открывающиеся во внутреннем браузере страницы. У многих операторов (хотя и не у всех) при открытии страницы фокус сразу насильственно передается на окно ввода логина. Побороть это никак не получается.

slalom: Хм... Сколько писал программ - никогда не терялся фокус, если этого не нужно было... Как-то хитро используете? Делаете прямой вызов библиотек IE?

SiBear: slalom пишет: Делаете прямой вызов библиотек IE? IE используется как COM-объект. С созданием окна компонента, иначе начинают некорректно выполняться JS-скрипты внедренные в страницу. В этом случае, если страница вызывает команду установки фокуса на определенный EDIT, аля: [pre2]document.getElementById("phoneCtrl").focus()[/pre2] (например, личный кабинет МТС) то фокус уходит на компонент IE и, соответственно, на окно программы. update: Да, если что, используется компонент TEnbeddedWB. Хотя, точно такое же поведение наблюдается и при встраивании в OLE-контейнер непосредственно IWebBrowser. Можно создавать экземпляр IE отдельным процессом через CreateComObject - но такое поведение начинают блокировать антивирусы, настройки системы и т.д. Плюс к этому, пропадает возможность автоматически закрывать всплывающие окна, типа "Неправильный сертификат" и прочее.


slalom: Угу. Так и думал. А использовать сетевые компоненты и обрабатывать чистый трафик с анализом - быстрее, надежнее и проще с одной стороны. Ну, немного сложнее в описании первички - но все же... ИМХО - плюсов потом будет больше, нежели минусов. А фокус - он ведь в принципе не нужен - тут же обработка конкретных полей идет.

SiBear: slalom Увы, не так все просто: сейчас большинство систем статистики переходит на динамический HTML. Собственно, что я так упрощаю - Вам, как профессионалу, должны быть известны аббревиатуры AJAX, JQuery и, соответственно, динамическое формирование DOM-а. Чистым трафиком в данном случае уже очень и очень трудно обойтись. Для простых систем - конечно можно было бы, но это выйдет за общие стандарты... Поэтому приходится полностью эмулировать работу человека в браузере.



полная версия страницы