Способов не только очень много - они все очень разные.
Если программа на Java - через Java Accessibility. Если с чужой dll взаимодействовать надо - dll injection. Если что-то просто с формы сдернуть - WinAPI. Если это что-то в виде изображение - OCR. Если через сеть работает приложение - проще перехватывать и парсить траффик. В общем подходов масса и без конкретного описания невозможно сказать, какой из них подойдет.
Способов тысяча. От совместного использования файла до службы. Или конкретизируйте программу или поставьте вопрос по-другому, чтобы на него можно было ответить. )