При запуске скриптового типа python из Windows вы получаете окно типа оболочки Windows, в котором запускается скрипт. Как скрипт определяет, а также устанавливает/управляет размером окна, размером буфера экрана и расположением окна указанного окна ?. Я подозреваю, что это можно сделать с помощью модуля pywin32, но я не могу найти, как это сделать.Как контролировать размер окна оболочки Windows из сценария python?
2
A
ответ
9
Вы можете сделать это, используя функцию SetConsoleWindowInfo из API win32. Следующие должны работать:
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))
UPDATE:
положение окна в основном то, что 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)
Это работает для настройки окна Размер. Можете ли вы также предоставить код для размера буфера экрана и положения окна. Мои знания о типах ctypes и win32 API равны нулю. – LtPinback
@LtPinback: см. Обновление выше. – ars
Должен ли STDOUT на самом деле быть -11? https://msdn.microsoft.com/en-us/library/ms683231(VS.85).aspx – user136036