Можно ли сфокусироваться на другой программе для ответа на событие, но после того, как ответ был обработан, вернитесь к предыдущей программе и верните курсор там, где он был?
Это звучит как странный вопрос, но подумайте об этом по строкам
Если есть полное решение С#, то отлично, но похоже, что это может потребовать немного больше усилий, чем обычно.
Любые мысли?
В моем опыте программы Windows работают именно так. Часто кажется, что они не потому, что пользователь возвращает фокус с помощью мыши, который сам сбрасывает фокус. Если это приложение winforms, вы, вероятно, можете что-то сделать с потерянным фокусом/получившими фокусные события на уровне формы.
Лично это может привести к тому, что пользователь выберет нежелательные значения во всплывающем окне. Например, кто-то печатает в Word. В вашем приложении появится окно, в котором нажатие "Enter" выбирает значение... например, кнопку по умолчанию. Не желая, пользователь "выбрал" неправильное значение в вашей форме.
Windows сама имеет тенденцию делать это, и это очень раздражает. Быстрое двойное нажатие на ярлык на рабочем столе для открытия приложения, а затем переход на (например) сообщение электронной почты перед запуском приложения, приведет к удалению фокуса из сфокусированного окна электронной почты и добавлению фокуса в только что открытое приложение, в результате чего ваш текст электронной почты или штрихи клавиатуры перейдут в только что открытое окно.