当从Windows启动一个脚本类型的Python文件时,你会得到一个Windows shell类型的窗口,在该窗口中运行脚本。如何确定和设置/控制该窗口的窗口大小、屏幕缓冲区大小和窗口位置?我怀疑可以使用pywin32模块来实现,但我找不到方法。
您可以使用来自win32 API的SetConsoleWindowInfo函数来实现此操作。以下代码应该可以正常工作:
from ctypes import windll, byref
from ctypes.wintypes import SMALL_RECT
STDOUT = -11
hdl = windll.kernel32.GetStdHandle(STDOUT)
rect = wintypes.SMALL_RECT(0, 50, 50, 80) # (left, top, right, bottom)
windll.kernel32.SetConsoleWindowInfo(hdl, True, byref(rect))
更新:
窗口位置基本上是通过上面的rect
变量设置left,top,right,bottom
参数来确定的。实际大小是由这些参数派生出来的:
width = right - left + 1
height = bottom - top + 1
要设置屏幕缓冲区的大小,例如100行80列,可以使用SetConsoleScreenBufferSize API:
bufsize = wintypes._COORD(100, 80) # rows, columns
windll.kernel32.SetConsoleScreenBufferSize(h, bufsize)
import ctypes.wintypes as wintypes
的内容,以使rect = wintypes.SMALL_RECT(0, 50, 50, 80)
正常工作... - martineau