Как украсть фокус в Windows 10
У меня есть приложение (Openedge), которое получает сообщение сокета, инициированное нажатием клавиши в другом приложении. Когда сообщение получено, я ожидаю, что принимающий процесс запустит новое окно и передаст ему фокус.
Это успешно работало в течение нескольких лет в Windows 7, но у нас есть проблема в Windows 10, заключающаяся в том, что новое окно запускается правильно, но не фокусируется - фокус остается в приложении-инициаторе.
Я пробовал несколько различных вызовов API - SetForegroundWindow, SetFocus, SetWindowPos, SwitchToThisWindow и т. Д. - безрезультатно. У меня также установлено значение ForegroundLockTimeout 0.
У меня есть доступ только к коду в принимающем приложении Openedge.
Как я могу заставить это окно украсть фокус?
Я не хочу вдаваться в моральные споры о вреде кражи фокуса:) - в рамках нашей бизнес-среды это законное действие.
Спасибо