Hallo mexico67,
Officer hat schon gezeigt, wie man die gewünschten Linien produziert. Fehlen tut nur noch die Hardwareanbindung, d. h. wie liest man denn nun Signale vom seriellen Port / Parallelport ein.
Nehmen wir den Parallelport LPT1. Windows bietet - wie so oft, wenn's ins Eingemachte geht -, keine bordeigenen Mittel an. Du brauchst eine externe DLL, die Du auf
http://logix4u.net/parallel-port findest. Sie wurde ehedem von Jan Axelson für Windows 95 geschrieben, dann aber für neuere Betriebssysteme bis Windows XP angepasst. Die Datei sollte im Windows Systemverzeichnis abgelegt werden. (Auf die Bitversion achten!) Sie sollte auch unter Windows 7 laufen, - falls man denn überhaupt noch einen Parallelport am Rechner hat.
Als nächstes musst Du die Basisadresse des Parallelports auf Deinem Rechner finden. Normalerweise ist das &H378, aber sicherheitshalber bitte im Gerätemanager unter den Eigenschaften des Ports nachsehen.
Die DLL bietet nur zwei Prozeduren an, Inp und Out:
Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
Du benötigst nur Inp, die zu Beginn des Projekts wie oben deklariert werden muss. Danach kann sie wie eine normale Funktionsprozedur aufgerufen werden.
Der Eingabewert ergibt sich dann wie folgt:
Dim inpval as Integer, iPortAddress as Integer, iStatus as Integer
iPortAddress=CInt(&H378)
inpval = Inp(iPortAddress)
Der Status der i-ten Datenleitung ergibt sich aus der iStatus = (inpval and 2^i), also etwa für Pin 13 das Bit 4.
Abfragen tut man das im geeigneten/gewünschten Tabellen-Event.
MfG,
Ricco.