Как получить доступ к консоли из неконсольного приложения?
От: lesovick Россия  
Дата: 05.01.15 14:29
Оценка:
Есть библиотека с функцией записи сообщения на консоль текущего консольного приложения (Console.Write("Test")). Есть необходимость её протестировать. Тестирование заключается в оценке результата вывода функции на консоль (т.е. оценке строки, полученной из буфера консоли). Есть стандартный инструмент для тестирования: проект модульного теста VS 2012. Есть инструмент для считывания буфера консоли — WinAPI-функция ReadConsoleOutput. При применении в консольном приложении функция работает отлично.

PD>http://msdn.microsoft.com/en-us/library/windows/desktop/ms684965(v=vs.85).aspx

PD>http://stackoverflow.com/questions/12355378/read-from-location-on-console-c-sharp

Беда в том, что модульный тест — это не консольное приложение. Если попытаться вызвать функцию Console.Write("Test") в НЕконсольном приложении, она будет выполнена без к.-л. Exceptions. Но в консольный буфер, судя по всему, ничего не попадёт. По крайней мере вызов ReadConsoleOutput демонстрирует пустые строки.

Можно ли как-то "включить" работу с консолью в неконсольном приложении? Пойдёт и с "невидимым" окном консоли, лишь бы данные туда писались. Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.