Это пахнет довольно плохо.Почему одна часть вашего приложения пытается помешать другой части?Если компонент, открывающий диалоговое окно, не является компонентом, ориентированным на пользователя, и вы пытаетесь задушить всплывающее окно в пользовательском интерфейсе, то вам нужно немного переделать, чтобы компонент уведомлял пользовательский интерфейс о необходимости ввода имени файла.и пользовательский интерфейс может выбрать, как его получить.Если вы используете компонент для внутреннего использования и он раздражает, то открывает диалоговое окно, тогда звучит так, будто вам нужно настроить этот компонент так, чтобы диалоговое окно зависело от того, используется ли он пользователем, а не службой.
Как и большинство проблем с winapiбудет способ взломать его, отслеживать фокус ваших приложений, перехватывать WM_CHILDACTIVATE или опрашивать окно верхнего уровня - все это может сработать, но все они - хаки, чтобы обойти тот факт, что ваше приложение не соответствует своему дизайну.Если вы сможете исправить дизайн, вы получите более надежное решение, на которое ваши коллеги не будут лезть.