2015-03-24 5 views
2

Как запустить внешнее приложение из моего приложения python И отобразить внешнюю программу на втором экране? К сожалению, мой основной графический интерфейс и внешний графический интерфейс не подходят ни на одном экране.Как запустить внешнюю программу на втором экране?

До сих пор я использовал модуль подпроцесса и конструктор Popen, но я чувствую, что желаемая функциональность не предоставляется.

Я рассмотрел вопрос о включении помощника STARTUPINFO (https://docs.python.org/2/library/subprocess.html#windows-popen-helpers) в подпроцесс, но я не нашел параметры, которые, похоже, соответствуют моей проблеме.

Внешнее приложение написано на языках C++ и C#, если это представляет интерес.

Спасибо всем!

Редактировать: Я использую Windows 7 и настройку с двумя мониторами (точнее, ноутбук + монитор).

Второй Изменить: Я нашел возможный ответ на мое:

from win32api import GetSystemMetrics 
import win32gui 
import win32con 

window = win32gui.GetForegroundWindow() # retrieves the freshly opened window 
win32gui.MoveWindow(window, GetSystemMetrics(0), 0, 0, 0, True) # translates it about the main monitor width 
win32gui.ShowWindow(window, win32con.SW_MAXIMIZE) # maximizes the window 

Я не ответил сам, так как это не совсем то, что я просил. Для моих нужд решение достаточно, хотя я был бы рад дальнейшим предложениям.

+1

Какая ОС используется? –

+0

Это вопрос о настройках с двумя мониторами или инструменте командной строки 'screen'? Что такое «STARTUPINFO»? –

+0

Вы имеете в виду консольное окно? Если это так, см. CREATE_NEW_CONSOLE в флагах создания для STARTUPINFO – cdarke

ответ

0

Я не очень хорошо знаю Windows, чтобы заставить ОС разместить окна определенным образом. Существуют внешние инструменты, которые могут помочь: https://superuser.com/questions/250334/utility-to-lock-window-position-size-of-windows-in-windows-7

Следующий вопрос: как переместить окно ко второму монитору. Это зависит от того, как вы настраиваете свой рабочий стол. Обычный режим - «охватывающий рабочий стол», где вы получаете виртуальный рабочий стол, и каждый монитор отображает его части. Средство на одном мониторе будет иметь верхний/левый край на «0, 0», а другой - на «1920, 0». Чтобы разместить окно на втором, вам просто нужно установить верхний левый угол окна на «1920, 0».

В системах с X11 большинство программ поддерживают опцию -geometry, которая делает это очень просто, но в Windows ваше приложение нуждается в специальной поддержке для этого или вам нужны внешние инструменты (см. Ссылку выше).

+0

Я попробую. Спасибо! – no12llu