У нас есть приложение Win32, в котором размещается среда выполнения .NET и открываются управляемые формы .NET из части приложения Win32.
Эти окна всегда открываются как модальные окна.
На некоторых машинах, когда эти окна закрыты, окно Win32, которое находится позади, не получает фокуса, а отправляется за Word, Outlook или что-то еще, что у вас может быть открыто.
Кроме того, иногда, если мы открываем такую форму .NET, затем нажимаем Alt-Tab на Word или какое-либо другое приложение, а затем щелкаем значок на панели задач для нашего приложения, появляется окно Win32. Это, конечно, все еще ждет закрытия модального окна .NET, поэтому его, конечно, нельзя использовать. Если мы переместим Alt-Tab на что-то другое и просто свернём это другое, то снова появится наше окно .NET.
Непоследовательная часть заключается в том, что это происходит только на некоторых машинах, а не на всех. На многих машинах, включая мою, он работает именно так, как ожидалось. Фокус на правое окно работает каждый раз.
Я не сомневаюсь, что мы сделали что-то не так, но я не могу понять, в чем проблема.
Кто-нибудь знает, что я должен искать? Мы рассмотрели установленные среды выполнения .NET, и, поскольку две такие машины, на одной из которых работает, а на другой нет, являются машинами разработчиков, они содержат одни и те же пакеты обновлений для .NET и так далее.
Редактировать: Хорошо, @sam, вы были правы в том, что у нас были разные настройки в этом переулок. Обе машины работают под управлением Windows XP SP3, но на моей была установлена классическая тема Windows, а на другой — новая тема XP. Изменение темы на этом другом компьютере на классическую устранило проблему, но изменение ее обратно на тему XP не привело к ее повторному появлению.
Итак, теперь у нас есть две машины, на которых это работает, и у клиента все еще есть проблема, хотя клиент, по-видимому, использует классическую тему.