我正在尝试使用python ...
最大化特定窗口这是交易: 我有一个脚本打开2个firefox窗口(selenium rc),我需要最大化第二个窗口,最后一个窗口打开... 我该怎么办?
我正在使用此命令
window = win32gui.GetForegroundWindow()
win32gui.MoveWindow(window, 0, 0, 1440, 900, True)
效果很好,但只有焦点窗口...而firefox女巫的第二个窗口打开,脚本不会聚焦......
答案 0 :(得分:13)
这应该有效
import win32gui, win32con
hwnd = win32gui.GetForegroundWindow()
win32gui.ShowWindow(hwnd, win32con.SW_MAXIMIZE)
答案 1 :(得分:6)
如果您不想安装单独的模块,可以使用内置的ctypes模块。用法与上面接受的答案没有什么不同,除了你与DLL本身交互而不必安装任何其他东西。
首先是代码:
import ctypes
user32 = ctypes.WinDLL('user32')
SW_MAXIMISE = 3
hWnd = user32.GetForegroundWindow()
user32.ShowWindow(hWnd, SW_MAXIMISE)
现在解释:
SW_MAXIMISE
值设置为3,因为这是将窗口设置为最大值的值(在documentation中指示)。hWnd = user32.GetForegroundWindow()
检索前景窗口(位于所有其他窗口前面的窗口) - 有关该功能的完整说明,请参阅here。ShowWindow()
控制Windows显示状态。这需要两个参数,窗口的句柄(上面定义为hWnd
)以及应该如何看到窗口(在SW_MAXIMISE = 3
中设置为3)。您可以查看documentation以获取各种选项的更完整列表。你当然可以把它放到一个让它易于使用的功能中。
另一种方法:
由于在这种情况下不担心跨平台,因此您可以构建C或C ++扩展。
优点:
挫折:
要调用的实际函数不应该那么困难:
static PyObject * max_win(PyObject *self, PyObject *args) {
ShowWindow(GetForegroundWindow(), SW_MAXIMISE);
return Py_BuildValue(""); // Return nothing
}
请注意,这只是所需实际代码的一部分