Проблема с приложением VB6, вывод диалогового окна на передний план и фокус на Windows 7

У меня есть небольшое служебное приложение, написанное в Visual Basic 6, который успешно работал на клиентах XP в течение многих лет, пока недавно клиент, использующий Windows 7, не уведомил и не показал мне, что поведение отличается.

Когда мое приложение VB отображает диалоговое окно, оно остается скрытым до тех пор, пока пользователь не щелкнет его на панели задач.

Я изменил код вместо того, чтобы использовать расширение «.show vbModal", я перешел к отображению формы немодально, а затем добавил различные вызовы API, такие как BringWindowToFront и SetWindowPos, чтобы сделать ее самой верхней, И вызывая .focus на форме, несмотря на эти дополнительные инструкции, лучший результат, которого я могу достичь, это чтобы форма мигала, предлагая пользователю щелкнуть по ней.

Независимо от того, что я пробовал, я не могу сделать окно самым верхним и с фокусом без вмешательства пользователя.

Примечание. Это проект ActiveX exe. и вызывается приложением Win16 через COM.

Кто-нибудь еще сталкивался с таким поведением и знает решение?

Приветствуются любые предложения/советы, спасибо.

5
задан David Brown 31 May 2012 в 11:13
поделиться