1. Работа с портами. Запись в текстовый файл представляешь? Вот так реализуется работа с ком-портом.
2. Можно не с нуля писать, а для начала перехватывать события в уже готовом софте, на написание первого софта уйдёт пара выходных, а там уже потом можно неспеша рисовать DLL.
3. и опять таки, если есть что-то в исходниках, то изменится только интерфейс, алгоритмы останутся.