Как придать X-окну Exceed фокус в приложении C #? - PullRequest
0 голосов
/ 31 августа 2009

В настоящее время наше программное обеспечение работает на машинах AIX Unix, но мы используем Windows-боксы с Exceed для отображения пользовательского интерфейса в X-windows. Я пишу приложение для Windows (модернизирующее пользовательский интерфейс в C #), но некоторые устаревшие окна все еще должны отображаться в Exceed. Когда пользователь нажимает кнопку в моем приложении Windows, он отправляет сообщение на сервер Unix, который отображает X-окно. Моя проблема в том, что эти X-окна не получают фокус, поэтому они появляются за всеми моими окнами / формами .NET.

Пользователь этого программного обеспечения может легко открыть более 5 оконных форм в любой момент времени, так что это большое неудобство, если каждый раз, когда он хочет отобразить устаревшее X-окно, ему нужно минимизировать все окна. , Какой лучший способ для меня это решить? Есть ли способ для меня, чтобы сосредоточиться на Exceed, чтобы он поднял X-окно наверх? Я пытался использовать Application.OpenForms, но звонок .SendToBack() в каждой форме мне не помог.

1 Ответ

1 голос
/ 31 августа 2009

Если всплывающие окна появляются из процесса, отличного от создаваемого вами приложения Windows, вам, вероятно, придется прибегнуть к хаку. Microsoft поместила код в WinXP, чтобы приложения не могли открывать окна перед всем, если только это не часть приложения, над которым работает пользователь. Для этого вам необходимо использовать значение реестра ForegroundLockTimeout и API-интерфейсы Windows, чтобы перетащить окно вперед.

Дополнительная информация:

http://social.msdn.microsoft.com/forums/en-US/winforms/thread/54826e98-9faa-4457-ba1d-b645af88170b/ (Последняя запись содержит заключение, но вам нужно будет прочитать некоторые из предыдущих записей. Я также предлагаю вам установить ForegroundLockTimeout в ноль, сделать переключение, а затем установить ForegroundLockTimeout обратно в его предыдущее значение.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...