Wenn der Rest egal ist (warten bis sich was tut), dann benutze doch GetTickCount um die Zeit zu ermitteln. Das sollte hinreichend genau sein.
Delphi-Quellcode:
var LastTime, WaitTime : DWord;
...
// hier wird gestartet
LastTime := GetTickCount;
// hier läuft alles was laufen muss
....
// hier ist fertig
WaitTime := GetTickCount - LastTime; // und hier hast du in ms die vergangene Zeit
// und weiter im Text
edit: Sorry nicht ganz aufgepasst. Ja, so kannst du das machen. Wenn das Programm bedienbar bleiben soll, dann musst du das ganze LPT-Handling in einen Thread auslagern. Mit der Zeitmessung hat das nichts zu tun. Dafür gibt es aber tolle freie Compos. Ich Glaub bei Async Pro ist auch was dabei.
Gruß oki