Как правильно работать с консольными программами из кода?
Увы, но вам велосипедить всё-таки придётся.
В том плане, что запускаете консольную программу, перенаправляете её вывод в свой поток и этот вывод уже тупо парсите
Используй popen / _popen.
https://msdn.microsoft.com/en-us/library/96ayss4b.aspx
linux.die.net/man/3/popen