это очень сложная проблема, которую нужно решить, и она должна быть пересмотрена Microsoft, приложение, просто крадущее фокус, нелогично, хотя оно зависит от того, что делает веб-сайт. Мне пришлось прибегнуть к фильтру CBT, см. http://msdn.microsoft.com/en-us/magazine/cc188966.aspx, и отфильтровать нежелательные HCBT_ACTIVATE и HCBT_SETFOCUS (возвращение 1;). Вы можете использовать GetWindowClass (wParam), чтобы увидеть, что происходит.
Даже выше не работало полностью, окно приложения все равно временно выходило на передний план, так что обходилось с помощью SetWindowPos HWND_TOPMOST и HWND_NOTOPMOST в окне, которое в настоящее время находится на переднем плане. HCBT_SETFOCUS получает удар 2 или 3 раза, поэтому при первом наборе HWND_TOPMOST и последнем наборе HWND_NOTOPMOST. Посчитайте, сколько classname == «Internet Explorer_Server», которое должно быть 2 (или, возможно, зависит от веб-сайта?), Другое - «Вложение оболочки», но это не всегда происходит. Надеюсь, это поможет.