Member 13037218 Ответов: 2

Попытка скопировать окно консоли (текст и цвета) и восстановить его позже в программе...


Привет,

Я пишу vb.net консольное приложение работает в окне 120 x 32, и я пытаюсь сделать снимок окна, а затем в программе восстановить его обратно к тому, как он выглядел в момент создания снимка.

Что я уже пробовал:

Я думаю, что у меня есть моментальная часть проблемы, покрытая этим:
Dim hConsoleOutput As IntPtr = GetStdHandle(STD_HANDLES.STD_OUTPUT_HANDLE)
Dim Buffer(3840) As CHAR_INFO
Dim BufferSize As New COORD(120, 32)
Dim BufferCoord As New COORD(0, 0)
Dim ReadRegion As New SMALL_RECT(0, 0, 119, 31)

Dim X As Boolean = (ReadConsoleOutput(hConsoleOutput, Buffer(0), BufferSize, BufferCoord, ReadRegion))
Но мне не удалось написать процедуру, чтобы восстановить окно обратно в исходное состояние.

Ценю любую помощь с другой частью рутины!

CHill60

Вам придется воспроизвести все выходы (и, возможно, входы), которые в первую очередь попали в окно консоли. Вы захватили изображение, но окно консоли-это не " изображение"

2 Ответов

Рейтинг:
1

Member 13037218

Таким образом, данные, которые я захватил с помощью функции ReadConsoleOutput (текст и цвета), не могут быть записаны обратно в окно консоли?

Функции WriteConsoleOutput или WriteConsoleInput не позволяют вам сбрасывать на экран буфер подходящего формата (CHAR_INFO)?


Рейтинг:
1

Richard MacCutchan

Попробуй Функция WriteConsoleOutput (Windows)[^].


Member 13037218

Привет Ричард,

Я уже видел страницу WriteConsoleOutput, на которую вы ссылались, но мне не удалось заставить рутину работать с этим примером.