Как контролировать размер окна оболочки Windows из скрипта Python? - PullRequest
3 голосов
/ 05 сентября 2010

При запуске файла Python типа скрипта из Windows вы получаете окно типа оболочки Windows, в котором запускается скрипт. Как сценарий может определять, а также устанавливать / контролировать размер окна, размер экранного буфера и положение окна указанного окна? Я подозреваю, что это можно сделать с помощью модуля pywin32, но я не могу найти, как.

1 Ответ

10 голосов
/ 06 сентября 2010

Это можно сделать с помощью функции SetConsoleWindowInfo из win32 API.Должно работать следующее:

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)
...