2017-02-12 56 views
0

我使用python一次用vlc打开4个视频,我希望它们能够在屏幕的每个四分之一处自动调整大小(就像在拖动窗口时发生的那样)。如何以编程方式调整Windows 10中的进程窗口大小?

我使用subprocess库的Popen方法如下:

for i in range(0,4): 
    p = subprocess.Popen(['vlc location','file name']) 
p.wait() 

到目前为止,视频打开,但我无法弄清楚如何将他们钉在这样的角落:

screenshot of desired results

+0

[这个答案](http://stackoverflow.com/a/14654287/355230)到一个不相关的问题显示如何使用'win32gui.MoveWindow()'在Windows桌面上定位窗口(以及如何遍历所有可见的)。类似的东西就是你需要做的。 – martineau

+1

谢谢!它解决了我的问题。 –

+0

你很受欢迎。 ':-)'当你被允许(经过一段时间后),你可以发布一个答案给你自己的问题,这可以帮助其他人解决类似的问题。 – martineau

回答

1

如果你要像我一样使用POPEN子方法,你将需要删除p.wait(),因为它会等待视频运行了代码(它把过程在之前结束队列而不是线程)。

与马蒂诺的帮助下,他提供我用下面(安装pywin32为Python 3.5之后)答案:

import pywintypes 
import win32gui 

displays = [[-10,0,980,530], 
     [954,0,980,530], 
     [-10,515,980,530], 
     [954,515,980,530]] #these are the x1,y1,x2,y2 to corner all 4 videos on my res (1920x1080) 

def enumHandler(hwnd, lParam): 
    if win32gui.IsWindowVisible(hwnd): 
     print(win32gui.GetWindowText(hwnd)) #this will print all the processes title 
     if name in win32gui.GetWindowText(hwnd): #it checks if the process I'm looking for is running 
      win32gui.MoveWindow(hwnd,i0,i1,i2,i3,True) #resizes and moves the process 

win32gui.EnumWindows(enumHandler, None) #this is how to run enumHandler 

的X1,Y1,X2,Y2可能是您的流程不同,但这些工作对vlc媒体播放器来说很好。我希望我很清楚,但如果你没有完成,你应该检查马提诺提供的答案。

相关问题