3 υ_@sdZdZy.ddlZddlmZeejZddlmZWn.eefk rddZddZ ddZ YnfXdd lm Z m Z m Z mZejZGd d d e ZejjZejge_eje_ejjZejeege_eje_ejj Zejejge_eje_ejjZejege_eje_ejj Z!eje ejeeejge!_eje!_ejj"Z#ejejejeeejge#_eje#_ejj$Z%ej&ge%_eje%_eeeeeeiZ'd d Z efddZddZ dddZddZ(ddZ"ddZ)dS) N) LibraryLoader)wintypescGsdS)N)_rr/usr/lib/python3.6/win32.pysr cGsdS)Nr)rrrrr s)byref Structurec_charPOINTERc@s>eZdZdZdefdefdejfdejfdefgZddZ d S) CONSOLE_SCREEN_BUFFER_INFOzstruct in wincon.h.dwSizedwCursorPosition wAttributessrWindowdwMaximumWindowSizec CsHd|jj|jj|jj|jj|j|jj|jj|jj|jj |j j|j jf S)Nz"(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)) rYXrrrTopLeftZBottomZRightr)selfrrr__str__s   z"CONSOLE_SCREEN_BUFFER_INFO.__str__N) __name__ __module__ __qualname____doc__COORDrWORDZ SMALL_RECTZ_fields_rrrrrrs rcCs$tt}t}t|t|}t|S)N)handlesSTDOUTr_GetConsoleScreenBufferInfor bool)handlecsbisuccessrrr winapi_testas  r'cCs t|}t}t|t|}|S)N)r rr"r ) stream_idr$r%r&rrrGetConsoleScreenBufferInfohs  r)cCst|}t||S)N)r _SetConsoleTextAttribute)r(Zattrsr$rrrSetConsoleTextAttributeosr+TcCsvt|}|jdks|jdkr dSt|jd|jd}|rdttj}|j|j7_|j|j7_t|}t ||S)Nr) rrrr)r!rrrr _SetConsoleCursorPosition)r(ZpositionZadjustZadjusted_positionsrr$rrrSetConsoleCursorPositionss r/cCsBt|}t|j}tj|}tjd}t||||t|}|jS)Nr)r r encoderDWORD_FillConsoleOutputCharacterAr value)r(charlengthstartr$ num_writtenr&rrrFillConsoleOutputCharacters   r8cCs:t|}tj|}tj|}tjd}t||||t|S)za FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )r)r rrr1_FillConsoleOutputAttributer )r(attrr5r6r$Z attributer7rrrFillConsoleOutputAttributes    r;cCst|S)N)_SetConsoleTitleW)titlerrrSetConsoleTitlesr>ii)T)*r!ZSTDERRZctypesrZWinDLLZwindllrAttributeError ImportErrorr+r'r r r r Z_COORDrrZkernel32Z GetStdHandleZ _GetStdHandler1ZargtypesZHANDLEZrestyper)r"ZBOOLr*rr/r-ZFillConsoleOutputCharacterAr2r;r9ZSetConsoleTitleAr<ZLPCSTRr r8r>rrrrsl