Python: процесс открытия на определенном экране - PullRequest
0 голосов
/ 15 августа 2011

Я написал скрипт для себя, поэтому при входе в компьютер 4 IE автоматически запускается Windows. Я попытался использовать модуль webbrowser, но он загрузил бы 4 ссылки в 1 окно IE с вкладками. Я не мог заставить веб-браузер открывать 4 разных окна, поэтому я использовал подпроцесс. Открыть.

У меня есть 4 монитора, и я хочу, чтобы каждый экземпляр IE автоматически запускался на соответствующем экране. Прямо сейчас я могу получить только 4 окна для загрузки позади друг друга на главном экране. Как я могу сделать это? Я гуглил и гуглил, и я не могу найти ничего об открытии процесса с определенными измерениями или на определенном экране ... Вот мой сценарий:

import subprocess

subprocess.Popen('"C:\\Program Files\\Internet Explorer\\iexplore.exe" hxxps://myserver.com/Orion/SummaryView.aspx?viewid=1')

subprocess.Popen('"C:\\Program Files\\Internet Explorer\\iexplore.exe" hxxp://myserver2.com:8080/WOListView.do')

subprocess.Popen('"C:\\Program Files\\Internet Explorer\\iexplore.exe" hxxp://myserver3.com:8888/stats/cgi?sid=301960859109&area=stats&action=noc&id=22689236889&page=22&sel=tab_listview_sel_22689236889')

subprocess.Popen('"C:\\Program Files\\Internet Explorer\\iexplore.exe" hxxps://mymail.com/owa/')

1 Ответ

1 голос
/ 15 августа 2011

Я сомневаюсь, что вы можете сделать это только с помощью стандартных кроссплатформенных функций Python.Используя Windows API, вы можете указать начальную позицию и размер окна приложения с помощью dwX, dwY, dwXSize, dwYSize членов структуры STARTUPINFO, передаваемых в функцию CreateProcess.Вероятно, есть примеры использования CreateProcess с Python ctypes FFI.Настройка нескольких мониторов, по сути, обеспечивает один большой виртуальный рабочий стол с непрерывной системой координат, поэтому, задав эти параметры, вы можете заставить каждое окно отображаться на отдельном мониторе.Опять же, вам нужен Windows API для определения координат каждого монитора внутри этого большого виртуального экранного пространства, а именно функций EnumDisplayMonitors и GetMonitorInfo.Или, поскольку вы, вероятно, никогда не собираетесь использовать его на любом другом компьютере, вы можете экспериментально определить смещения экрана и жестко их кодировать.

...