IE8 имеет один процесс верхнего уровня, который содержит главное окно и рисует в нем рамку, адресную строку и другие элементы управления. У t также есть несколько дочерних процессов, которым принадлежат одна или несколько вкладок и соответствующие им окна.
Ваш код вернет дескриптор окна для окна верхнего уровня последнего процесса Iexplore. Однако, если этот процесс является дочерним окном, возникают две проблемы:
- не имеет окна верхнего уровня;
- ничто не гарантирует, что текущая видимая вкладка принадлежит этому процессу. \
Вам необходимо изменить свой код и специальный случай для IE, чтобы он соответствовал специфике иерархии процесса / окна IE.
Кстати, если вы решите рисовать в Chrome, у вас возникнут аналогичные проблемы, поскольку они также выполняют похожие трюки с несколькими процессами и иерархией окон, которая охватывает эти процессы.