2 Приложение Top Большая проблема - PullRequest
3 голосов
/ 01 февраля 2011

Я разработал 2 приложения, одно в Win32 API и второе в C # WPF. У меня есть проблема, 2 приложения должны быть самыми верхними, но второе (в C #) должно быть более верхним, чем первое приложение, проблема в том, что второе приложение запускается из автозапуска, тогда всегда будет запускаться быстрее, чем первое приложение, а первое приложение более самый верхний, чем второй?

Как я могу сделать второе приложение более популярным? Или как я могу показать второе приложение сверху, когда уже есть верхнее, а это под первым приложением?

Кто-нибудь может мне помочь? Привет,

Ответы [ 3 ]

7 голосов
/ 01 февраля 2011

С http://msdn.microsoft.com/en-us/library/system.windows.window.topmost.aspx:

В группе окон, для которой свойство Topmost установлено в значение true, окно, которое в данный момент активировано, является самым верхним окном.

Поэтому активируйте окно, которое вы хотите, чтобы оно было сверху-сверху-сверху :-) ...

РЕДАКТИРОВАТЬ: Я согласен с Питером, что делать это - то, что почти всегда является плохой идеей (получение контроля отпользователь).Вот почему MS не изо всех сил старается дать вам инструменты, чтобы делать вещи, которые вы хотите делать.Я дам тебе преимущество сомнения и не скажу тебе "не делай этого"

2 голосов
/ 01 февраля 2011

Это не то, что вы должны делать.

Находится ли одно или другое приложение сверху, это то, что вы хотите оставить пользователю.

Однако есть варианты.

Используя FindWindow, вы можете найти дескриптор окна, которое было запущено первым. Затем, когда у вас есть этот дескриптор, вы можете использовать SetWindowPos, чтобы убедиться, что ваше окно находится поверх другого окна, которое вы нашли. Для достижения этого вы используете аргументы z-порядка SetWindowPos.

Примечание: оба метода PInvoke. Используйте PInvoke для FindWindow и SetWindowPos для вызова этих методов из C #.

0 голосов
/ 01 февраля 2011

Я вижу только один путь. Второе приложение должно отслеживать первое до первого запуска приложения. После этого вы должны удалить самый верхний стиль из второго приложения и вернуть его обратно. Это действие приносит второе приложение вершины больше всего. Это не элегантно, но работает

...