代码之家  ›  专栏  ›  技术社区  ›  LtPinback

如何在python脚本中控制Windows shell窗口的大小?

  •  3
  • LtPinback  · 技术社区  · 14 年前

    从Windows启动脚本类型的python文件时,会得到一个运行脚本的Windows shell类型窗口。脚本如何确定并设置/控制所述窗口的窗口大小、屏幕缓冲区大小和窗口位置?。我怀疑这可以通过pywin32模块实现,但我找不到如何实现。

    1 回复  |  直到 14 年前
        1
  •  11
  •   ars    8 年前

    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 应用程序编程接口:

    bufsize = wintypes._COORD(100, 80) # rows, columns
    windll.kernel32.SetConsoleScreenBufferSize(h, bufsize)