Python:在特定屏幕上打开进程
我写了一个脚本,让我登录电脑时自动打开4个IE窗口。我试过用webbrowser模块,但它会把4个链接都放在一个IE窗口里,变成了多个标签页。我没法让webbrowser打开4个不同的窗口,所以我用了subprocess.Popen。
我有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
我怀疑你仅靠Python自带的跨平台功能是做不到这一点的。通过使用Windows的API,你可以指定应用程序窗口的起始位置和大小,这些信息通过STARTUPINFO
结构中的dwX
、dwY
、dwXSize
和dwYSize
来传递给CreateProcess
函数。网上可能有一些使用CreateProcess
和Python的ctypes
外部函数接口的例子。多显示器的设置实际上提供了一个大的虚拟桌面,坐标系统是连续的,所以通过设置这些参数,你可以让每个窗口出现在不同的显示器上。再说一次,你需要Windows的API来确定每个显示器在这个大虚拟屏幕空间中的坐标,具体来说就是EnumDisplayMonitors
和GetMonitorInfo
这两个函数。或者,因为你可能不会在其他机器上使用这个功能,你也可以通过实验来确定屏幕的偏移量,然后把这些值写死在代码里。