как центрировать приложение на родительском приложении в c # - PullRequest
1 голос
/ 30 ноября 2011

Я пишу приложение, которое запускается сторонним приложением, которое просто запускает файл .exe.

Есть ли способ заставить наше приложение запускаться по центру над другим приложением?

Спасибо, Роб.

Редактировать. У меня нет доступа к стороннему приложению, поэтому я не могу передать его местоположение или изменить его положение.

Ответы [ 4 ]

2 голосов
/ 30 ноября 2011

Сначала вам нужно найти окно стороннего приложения. Это можно сделать несколькими способами, в зависимости от этого приложения. Вы можете P / Invke, используя FindWindow . Это будет работать, если заголовок приложения всегда одинаков или если он имеет уникальное имя класса (которое можно найти с помощью Spy ++).

Еще один немного более неуклюжий, но более мощный способ - использовать GetWindow / GetNextWindow для циклического просмотра всех окон верхнего уровня и проверки их одно за другим.

Когда у вас есть hWnd приложения, вы вызываете GetWindowPos или GetWindowRect, чтобы найти его местоположение.

2 голосов
/ 30 ноября 2011

Используйте FindWindow , чтобы найти окно 3-стороннего приложения, а затем GetWindowRect , чтобы получить положение окна 3-стороннего приложения, а затем вы можете рассчитать, где должна быть позиция вашего окна.

1 голос
/ 30 ноября 2011

Вы можете установить StartPostion , если хотите, чтобы ваше приложение находилось в центре экрана.

this.StartPosition = FormStartPosition.CenterScreen; in the form constructor.

Посмотрите на msdn .

Если вы хотите, чтобы ваше приложение было центром другого приложения, которое его вызвало, вы можете передать Loaction этого приложения в вашприложение, а затем оно может перенастроить себя, указав его свойство Location.

0 голосов
/ 30 ноября 2011

Вы можете попробовать центрировать оба приложения.таким образом, 2-й будет центрирован на 1-м.

Другой способ - передать местоположение 1-го окна во 2-е окно, используя команду arugments, так что 2-е приложение будет знать, где разместить себя после запуска.

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