Я думаю, что это то, что вы после:
LockSetForegroundWindow
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633532(v=vs.85).aspx
Замечания система автоматически включает вызовы SetForegroundWindow, если пользователь нажимает клавишу ALT или принимает какое-то действие, которое вызывает самой системы, чтобы изменить окно переднего плана (например, щелкнув фоновое окно). Эта функция предоставляется, поэтому приложения могут помешать другим приложениям сделать предварительное изменение, которое может прервать его взаимодействие с пользователем.
Только не забудьте разблокировать :)
Edit:
Попробуйте SetWinEventHook, как описано здесь:
Is there Windows system event on active window changed?
Затем, когда нежелательное окно приходит на фронт вы можете отправить это на заднем плане.
Ну, вы можете взломать его, если это приемлемое решение. Замените значение WM_ACTIVATE некоторым WM_USER + чем-то. – user1764961
@ user1764961 Спасибо. Какие функции я могу использовать для замены? –
Это какая-то форма гонки вооружений? Будет ли приложение B обновляться, чтобы обнаружить приложение A и остановить его от выполнения перехвата? –