39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
from ctypes import *
|
|
|
|
STD_OUTPUT_HANDLE = -11
|
|
|
|
class COORD(Structure):
|
|
pass
|
|
|
|
COORD._fields_ = [("X", c_short), ("Y", c_short)]
|
|
|
|
class SMALL_RECT(Structure):
|
|
pass
|
|
|
|
SMALL_RECT._fields_ = [("Left", c_short), ("Top", c_short), ("Right", c_short), ("Bottom", c_short)]
|
|
|
|
class CONSOLE_SCREEN_BUFFER_INFO(Structure):
|
|
pass
|
|
|
|
CONSOLE_SCREEN_BUFFER_INFO._fields_ = [
|
|
("dwSize", COORD),
|
|
("dwCursorPosition", COORD),
|
|
("wAttributes", c_ushort),
|
|
("srWindow", SMALL_RECT),
|
|
("dwMaximumWindowSize", COORD)
|
|
]
|
|
|
|
def clear_console():
|
|
h = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
|
|
|
|
csbi = CONSOLE_SCREEN_BUFFER_INFO()
|
|
windll.kernel32.GetConsoleScreenBufferInfo(h, pointer(csbi))
|
|
dwConSize = csbi.dwSize.X * csbi.dwSize.Y
|
|
|
|
scr = COORD(0, 0)
|
|
windll.kernel32.FillConsoleOutputCharacterA(h, c_char(b" "), dwConSize, scr, pointer(c_ulong()))
|
|
windll.kernel32.FillConsoleOutputAttribute(h, csbi.wAttributes, dwConSize, scr, pointer(c_ulong()))
|
|
windll.kernel32.SetConsoleCursorPosition(h, scr)
|
|
|
|
clear_console()
|