У меня есть приложение, которое пользователь фактически не закрывает - вместо закрытия всего приложения главное окно скрыто. Затем, когда пользователь снова запускает одно и то же приложение, второй экземпляр связывается с первым (уже запущенным) экземпляром, а первый экземпляр пытается вывести основное окно приложения на передний план.Проблемы с отображением окна на передний план
Проблема в том, что это в основном преуспевает, но иногда терпит неудачу. Я сделал свое исследование, и кажется, что фоновые процессы не могут вывести их окна на передний план, что несколько разумно. Решением является вызов AllowSetForegroundWindow из второго экземпляра (который может вывести окно на передний план, поскольку пользователь запустил его) и дать разрешение на первый экземпляр программы.
Мой вопрос: как я могу убедиться, что мой код работает? Я спрашиваю об этом, потому что не нашел способа проверить, вызвал ли вызов AllowSetForegroundWindow эффект. Я не знаю, когда первый экземпляр не сможет установить окно переднего плана (потому что он работает в основном и редко не работает), поэтому я не знаю, как проверить, работает ли все правильно. Любые иды?
Существует грязный трюк, который всегда срабатывает. Это на самом деле трюк, встроенный в платформу .NET, поднимет его на поддерживаемую грязь. Не каждый программист на C# может [иметь дело с ним] (http://msdn.microsoft.com/en-us/library/Microsoft.VisualBasic.Interaction.AppActivate.aspx), но отчаянно всегда помогает. –
@HansPassant: Спасибо, хорошо знать все трюки :) – xx77aBs