Visual Basic, es un entorno de programacion en ambiente gráfico, pese a su potencia y facilidad no dispone en forma directa de instrucciones que permitan obtener del puerto paralelo.
Esta aparente desventaja se elimina si se utilizan funciones que usen algunas características de Windows, este tipo de problemática y su tentativa solución, se desarrolla una DLL capaz de resolver el acceso al puerto paralelo, a la DLL se le incorporan 2 rutinas, una para obtener datos y otra para introducirlos, del mundo exterior hacia la PC.
La forma de cómo utilizarla el DLL Port1.dll, se presenta a continuación:
Rutina erik(p , d)
Para sacar los datos por el puerto paralelo se utiliza la función
erik (Erik Valdemar Cuevas Jimenez; es el nombre del diseñador).
Esta rutina no es propiamente una función, ya que no devuelve ningún
valor al programa, su labor es solamente mandar los datos hacia fuera.
Para utilizarla se siguen los siguientes pasos:
Si se desea usar la rutina en VB (Visual Basic) es necesario declararla de tipo general, tal como se ilustra en la figura siguiente;

En este ejemplo se desea sacar un dato proporcionado por una barra de desplazamiento a través del puerto paralelo de la PC (LPT1).
Para realizar esta aplicación se declara la función tal y como se hace en la figura siguiente:
Enseguida se diseña la interfaz de usuario colocando en el form los objetos a utilizar, la barra de desplazamiento y una etiqueta, tal como se muestra en la figura de abajo.

La barra de desplazamiento
se configura con sus propiedades max y min en 255 y 0 respectivamente (255
puesto que el registro de salida del puerto paralelo es de 8 bits).
Como se muestra en la figura;
Se encadena el suceso de pulsación en las flechas de la barra (Change) y de arrastre (Scroll), con la salida del dato a puerto y su respectivo despliegue en la etiqueta para lo cual deberá incluirse el siguiente código.
Nota: Puede desde la figura 1 en la declaración como se trata esta rutina de un procedimiento (No devuelve valor). Por lo que para poder sacar el dato al puerto es necesario anteponer a la rutina la palabra clave call.
En esta aplicación se supone que la dirección del puerto paralelo es 3F8H. El símbolo &H es un identificador en VB que indica que el dato es hexadecimal. El símbolo % indica que la variable guardara un dato del tipo entero (declaración implícita de la variable).
Para el suceso Scroll se escribe exactamente el mismo código que el de la figura 2.
Rutina cochex(p, d)
Para introducir datos se utiliza la rutina cochex (nombre del amigo del diseñador). Esta rutina es una función, por lo que su declaración es algo diferente ala de la otra rutina.
Para poder utilizarla se siguen los siguientes 2 pasos:
Declararla, para lo cual será necesario escribir en el general lo que se muestra en la siguiente figura:

Es de notar las diferencias existentes con la declaración mostrada en la figura 1. Esta rutina si es una función por lo cual además de recibir un valor (la dirección del puerto) devuelve otro (valor leído del puerto), ambos datos el que recibe y el que devuelve son del tipo entero.
Si el archivo port1.dll no se pone en el subdirectorio C:\…..\WINDOWS\SYSTEM deberá de acompañarse entre las " " el camino completo de donde se encuentra al archivo.
Una vez declarada la función de entrada esta lista para usarla.
Ejemplo: En esta sección se ejemplifica una aplicación sencilla de la función de entrada. En este ejemplo se desea elaborar un sistema monitor que sea capaz de monitorear el valor de un puerto de 12 bits de una tarjeta de adquisición cuya dirección sea 31AH.
Los datos se mostraran utilizando una barra de estado (slider) y una etiqueta. Como se desea que el sistema realice la adquisición de forma automática es necesario definir un temporizador que marcara el tiempo de adquisición. El arranque del programa será controlado por el accionamiento de un botón. De esta manera la aplicación quedara de la siguiente manera:

La barra de estado (slider) se configura de tal forma que sus propiedades max y min sean 4095 (ya que el puerto es de 12 bits) y 0.
El timer se configura de tal forma que su propiedad enabled sea false. Esto es importante puesto que se desea que al empezar la aplicación no funcione sino hasta que se accione el boton command1.
El timer se configura de modo que el tiempo de temporizacion sea de 2 segundos. Con estos cambios las propiedades del timer serán:

El código necesario para el accionamiento de la aplicación, estará definido por el accionamiento del botón command1, por lo que el código que se ejecutara al realizar clic sobre el botón será:

Con este código se habilitara a que el timer se ejecute, por lo que desde ahora cada 2 segundos se interrumpirá para modificar las características de la barra de estado y la etiqueta con los nuevos valores leídos del puerto. Esto será posible si las siguientes instrucciones se colocan en el suceso timer.

Analizando el anterior código puede notarse que la variable que recibe el valor de la función cochex debe ser entera (%).
Objetos Utilizados.
Para agilizar los ejercicios realizados en VB se establece en este
apartado un sumario de los objetos utilizados en los ejemplos. Todos los
objetos estándar utilizados en las aplicaciones se encuentran en
la caja de herramientas:
Los objetos utilizados en la presentacion de este tutorial son:

Etiqueta (Label)
Generalmente utilizadas para desplegar datos.
Botón (Command Boton)
Utilizados para controlar procesos o disparar acciones.
Temporizador (Timer)
Utilizado para el disparo de eventos controlados por tiempo.
Barra de desplazamiento (Scroll bar)
Utilizadas para introducir datos o desplegarlos manejando una idea
gráfica del dato.
Barra de estado (Slider)
Utilizado para desplegar datos de un proceso utilizando una idea gráfica