Class WinConsole
- java.lang.Object
-
- xyz.cofe.term.win.WinConsole
-
public class WinConsole extends Object
Представляет набор функций для работы с консольюОснованя документация по функцию консоли есть по этой ссылке на docs.microsoft.com
Запуск консольного приложения
Что бы использовать данный класс, java приложение следует запустить с использованием javaw.exe. В обычном использовании java.exe консольнуые функции не доступны по причине архитекуры ОС.При первом создании экземпляра WinConsole, будет создана консоль
rawAPI().AllocConsole()(Wincon.AllocConsole())
Когда JVM будет завершать работу (Runtime.getRuntime().addShutdownHook), консоль будет освобожденаWincon.FreeConsole()Ввод-вывод
С консолью связаны обычно 3 стандарных канала- stdOutputHandle :
WinNT.HANDLE- std output, канал вывода обычной информации в файл/терминал - stdErrorHandle :
WinNT.HANDLE- std errput, канал вывода ошибок информации в файл/терминал - stdInputHandle :
WinNT.HANDLE- std input, канал ввода из файла/клавиатуры/....
- stdOutputHandle :
-
-
Constructor Summary
Constructors Constructor Description WinConsole()WinConsole(ConnectToConsole connectToConsole)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ControlHoldercontrolHandle(ControlHandler handler)Добавляет обработчик нажатия CTRL+BREAK, CTRL+CvoidcontrolHandleReset()voidcursor(int x, int y)смещает курсор в указанные позициюvoidflushInput()Очистить буфер вводаintgetAvailableInputEventsCount()Возвращает кол-во полученных, но не прочетанных событий вводаCharAttributesgetCharAttributes()Возвращает цвет и другие атрибуты выводимых символовCursorInfogetCursorInfo()Возвращает видимость и размер курсораWinConsoleOutputgetErrput()Deprecated.WinConsoleInputgetInput()Консоль для чтения событий вводаOptional<CodePage>getInputCodePageOptional()Возвращает текущую кодовую страницуInputModegetInputMode()Возвращает режим вводаLargestSizegetLargestSize()Retrieves the size of the largest possible console window, based on the current font and the size of the display.WinConsoleOutputgetOutput()Deprecated.Optional<CodePage>getOutputCodePageOptional()Возвращает кодовую страницу outputScreenBufferInfogetScreenBufferInfo()Возвращает информацию о размере и расположение вывода информацииScreenBufferModegetScreenBufferMode()Возвращает режим работы вывода (output/error output)static com.sun.jna.platform.win32.WinNT.HANDLEgetStdErrorHandle()Возвращает handle для std errorstatic com.sun.jna.platform.win32.WinNT.HANDLEgetStdInputHandle()Возвращает handle для stdinputstatic com.sun.jna.platform.win32.WinNT.HANDLEgetStdOutputHandle()Возвращает handle для stdoutStringgetTitle()List<InputEvent>peek(int eventCount)Читает события из буфера, не удаляя их - блокировать не должноList<InputEvent>read()Читает события из буфера, потенциально - блокируемая операция, лучше предварительно проверить наличие данных черезgetAvailableInputEventsCount()List<InputEvent>read(int eventCount)Читает события из буфера, потенциально - блокируемая операция, лучше предварительно проверить наличие данных черезgetAvailableInputEventsCount()voidsetCharAttributes(CharAttributes attributes)Указывает цвет и другие атрибуты выводимых символовvoidsetCursorInfo(CursorInfo cursorInfo)Указывает видимость и размер курсораvoidsetInputCodePage(CodePage codePage)Указывает текущую кодовую страницуvoidsetInputMode(InputMode mode)Указывает режим вводаvoidsetOutputCodePage(CodePage codePage)Указывает кодовую страницу outputvoidsetScreenBufferMode(ScreenBufferMode mode)Указывает режим работы вывода (output/error output)voidsetTitle(String title)intwrite(String text)Выводит сиволы в озицию курсора и меняет позицию курсора
-
-
-
Constructor Detail
-
WinConsole
public WinConsole(ConnectToConsole connectToConsole)
-
WinConsole
public WinConsole()
-
-
Method Detail
-
getStdOutputHandle
public static com.sun.jna.platform.win32.WinNT.HANDLE getStdOutputHandle()
Возвращает handle для stdout- Returns:
- handle для stdout
-
getStdInputHandle
public static com.sun.jna.platform.win32.WinNT.HANDLE getStdInputHandle()
Возвращает handle для stdinput- Returns:
- handle для stdinput
-
getStdErrorHandle
public static com.sun.jna.platform.win32.WinNT.HANDLE getStdErrorHandle()
Возвращает handle для std error- Returns:
- handle для std error
-
getOutput
@Deprecated(since="\u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c major") public WinConsoleOutput getOutput()
Deprecated.Консоль для вывода в stdout, в целом можно писать и в stderr - разницы нет- Returns:
- консоль вывода в stdout
-
getErrput
@Deprecated(since="\u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c major") public WinConsoleOutput getErrput()
Deprecated.Консоль для вывода в stderr, в целом можно писать и в stdout - разницы нет- Returns:
- консоль вывода в stdout
-
getInput
public WinConsoleInput getInput()
Консоль для чтения событий ввода- Returns:
- чтение событий ввода
-
getAvailableInputEventsCount
public int getAvailableInputEventsCount()
Возвращает кол-во полученных, но не прочетанных событий ввода- Returns:
- кол-во событий ввода в буфере
-
getInputMode
public InputMode getInputMode()
Возвращает режим ввода- Returns:
- режим ввода
-
setInputMode
public void setInputMode(InputMode mode)
Указывает режим ввода- Parameters:
mode- режим ввода
-
getInputCodePageOptional
public Optional<CodePage> getInputCodePageOptional()
Возвращает текущую кодовую страницу- Returns:
- кодовая страница
-
setInputCodePage
public void setInputCodePage(CodePage codePage)
Указывает текущую кодовую страницу- Parameters:
codePage- кодовая страница
-
read
public List<InputEvent> read(int eventCount)
Читает события из буфера, потенциально - блокируемая операция, лучше предварительно проверить наличие данных черезgetAvailableInputEventsCount()- Parameters:
eventCount- сколько событий прочесть и удалить из буфера- Returns:
- события
-
read
public List<InputEvent> read()
Читает события из буфера, потенциально - блокируемая операция, лучше предварительно проверить наличие данных черезgetAvailableInputEventsCount()- Returns:
- события
-
peek
public List<InputEvent> peek(int eventCount)
Читает события из буфера, не удаляя их - блокировать не должно- Parameters:
eventCount- сколько событий ожидаем- Returns:
- события ввода
-
flushInput
public void flushInput()
Очистить буфер ввода
-
getScreenBufferMode
public ScreenBufferMode getScreenBufferMode()
Возвращает режим работы вывода (output/error output)- Returns:
- режим вывода информации
-
setScreenBufferMode
public void setScreenBufferMode(ScreenBufferMode mode)
Указывает режим работы вывода (output/error output)- Parameters:
mode- режим вывода информации
-
getOutputCodePageOptional
public Optional<CodePage> getOutputCodePageOptional()
Возвращает кодовую страницу output- Returns:
- кодовая страница
-
setOutputCodePage
public void setOutputCodePage(CodePage codePage)
Указывает кодовую страницу output- Parameters:
codePage- кодовая страница
-
getCursorInfo
public CursorInfo getCursorInfo()
Возвращает видимость и размер курсора- Returns:
- видимость и размер курсора
-
setCursorInfo
public void setCursorInfo(CursorInfo cursorInfo)
Указывает видимость и размер курсора- Parameters:
cursorInfo- видимость и размер курсора
-
getScreenBufferInfo
public ScreenBufferInfo getScreenBufferInfo()
Возвращает информацию о размере и расположение вывода информации- Returns:
- информация о размере и расположении вывода информации
-
getCharAttributes
public CharAttributes getCharAttributes()
Возвращает цвет и другие атрибуты выводимых символов- Returns:
- цвет и другие атрибуты выводимых символов
-
setCharAttributes
public void setCharAttributes(CharAttributes attributes)
Указывает цвет и другие атрибуты выводимых символов- Parameters:
attributes- цвет и другие атрибуты выводимых символов
-
write
public int write(String text)
Выводит сиволы в озицию курсора и меняет позицию курсора- Parameters:
text- выводимый текст- Returns:
- кол-во записанных символов
- See Also:
setScreenBufferMode(ScreenBufferMode),cursor(int, int)
-
cursor
public void cursor(int x, int y)смещает курсор в указанные позицию- Parameters:
x- позиция курсораy- позиция курсора
-
getLargestSize
public LargestSize getLargestSize()
Retrieves the size of the largest possible console window, based on the current font and the size of the display.The function does not take into consideration the size of the console screen buffer, which means that the window size returned may be larger than the size of the console screen buffer. The GetConsoleScreenBufferInfo function can be used to determine the maximum size of the console window, given the current screen buffer size, the current font, and the display size.
Получает размер максимально возможного окна консоли на основе текущего шрифта и размера экрана.
Функция не учитывает размер экранного буфера консоли, а это означает, что возвращаемый размер окна может быть больше, чем размер экранного буфера консоли. Функцию GetConsoleScreenBufferInfo можно использовать для определения максимального размера окна консоли с учетом текущего размера экранного буфера, текущего шрифта и размера экрана.
- Returns:
- размер
-
getTitle
public String getTitle()
-
setTitle
public void setTitle(String title)
-
controlHandle
public ControlHolder controlHandle(ControlHandler handler)
Добавляет обработчик нажатия CTRL+BREAK, CTRL+C- Parameters:
handler- обрабочик- Returns:
- удаление обработчика
- See Also:
WinConsoleCommon.handleControl(ControlHandler)
-
controlHandleReset
public void controlHandleReset()
-
-