Myślę, że najbardziej uniwersalnym sposobem jest aplikacja robiona zrzut graficzny okna aplikacji źródłowej (czyli np. wspomnianego termometru) w regularnych odstępach czasu, a potem przez OCR analizująca informacje, które chcesz pozyskać. W C++ np. biblioteka Qt ma funkcję robiącą zrzut ekranu lub jego fragmentu oraz są funkcje do pracy na bitmapach.
Warunkiem koniecznym jest utrzymanie ciągłej widoczności aplikacji źródłowej, nie musi być na tym samym ekranie, co aplikacja docelowa.
Jak już masz bitmapę, to ją kadrujesz tak, żeby zawierała tylko potrzebną informację (np. temperaturę procesora), robisz dekompozycję w celu uniknięcia renderowania podpikselowego (w 99% przypadków jest ono stosowane), potem OCR (aplikacja Tesseract z linii poleceń), czyścisz napis z ewentualnych śmieci i masz to co chcesz.
Nie wiem, jak w przypadku Linux, ale w przypadku Windows, da się dobrać do standardowych kontrolek poprzez numer uchwytu i wywołania WinApi, więc w niektórych przypadkach nie potrzeba męczyć się z bitmapą i OCR.