Один из способов, которым SetWindowPos молча не сможет установить WS_EX_TOPMOST, - это когда процесс не имеет разрешения на SetForegroundWindow во время создания окна или вызывается SetWindowPos.Что, возможно, является одним из случаев, когда вам нужно самое верхнее окно (и, возможно, один из случаев, когда вам не разрешено).
Слухи о том, что MS закрыла эту лазейку с Vista,
Ограничение понятно: вы не хотите, чтобы верхние окна из случайных процессов захватывали фокус, когда у них тоже нет бизнеса.
Обходной путь для разумного случая использования, когда один процесс косвенно запускает вспомогательный процесс (как в случае установки, инициированной в родительском процессе, а затем вспомогательный процесс, запущенный из msiexec), а затем помощник хочет быть самым верхним или даже захватить ввод -AllowSetForegroundWindow.
Вы должны иметь право сосредоточиться, чтобы иметь возможность отказаться от него, очевидно.