Python:在某个屏幕上打开进程

时间:2011-08-15 13:03:10

标签: python internet-explorer popen

我为自己写了一个脚本,所以当我登录到计算机时,4个IE的Windows自动启动。我尝试使用webbrowser模块,但它会将4个链接加载到带有选项卡的1个IE窗口中。我无法让webbrowser打开4个不同的窗口,所以我使用了subprocess.Popen。

我有4台显示器,我希望每个IE实例都能在相应的屏幕上自动启动。现在我只能在主屏幕上将4个窗口加载到彼此后面。我怎么能做到这一点?我用google搜索和谷歌搜索,我找不到任何关于用某些尺寸或某个屏幕打开过程的信息......这是我的剧本:

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 个答案:

答案 0 :(得分:1)

我怀疑你是否可以单独使用Python标准的跨平台功能。使用Windows API,您可以通过传递给{{dwX结构的dwYdwXSizedwYSizeSTARTUPINFO成员来指定应用程序窗口的起始位置和大小1}}功能。可能有使用CreateProcess和Python CreateProcess FFI工具的例子。多显示器设置本质上提供了一个具有连续坐标系统的大型虚拟桌面,因此通过设置这些参数,您可以使每个窗口显示在单独的显示器上。同样,您需要Windows API来确定此大虚拟屏幕空间内每个监视器的坐标,即ctypesEnumDisplayMonitors函数。或者,由于您可能永远不会在任何其他计算机上使用它,您可以通过实验确定屏幕偏移并对其进行硬编码。