I have a simple device which relies heavily on my being able to control the parallel port pins from a VB app. After some searching I came accross a DLL which allowed me to have access to any port on the computer. This DLL however only works with WIN95 WIN98. I am not certain if it will work with WIN ME however I am certain it will not work with NT/2000 because of their hardware abstraction and their wanting to protect you from yourself.
I am including the readme file so that you can decide for youself.
Good Luck
PS Though the doc mentions only vb4 it works equally well with vb5 and vb6.
Documentation for inpout32.zip
Inpout32 is a DLL for port access in 32-bit programs
by Jan Axelson, Lakeview Research (jaxelson@lvr.com).
********IMPORTANT INFORMATION AND CAUTIONS!!********
1. Use this DLL entirely at your own risk. Writing directly
to hardware ports can result in system crashes, loss of
data, and permanent damage!! Inpout32 was developed to allow
access to parallel ports and ports on custom hardware, but
you can use it to attempt to access any hardware that is
mapped as an I/O port. Lakeview Research will not be held
liable for any damages resulting from the use of these
files.
2. Use this DLL only with 32-bit programs. 16-bit programs
require a 16-bit DLL.
3. Windows 95 allows direct port access with Inpout32 unless
a Vxd has control of the port and blocks access. Under
Windows NT, direct port access is not allowed. (Use an Ocx).
4. For the latest parallel-port programming and interfacing
information, visit Parallel Port Central at:
Jan Axelson
***
Inpout.zip contains the following:
inpout32.dll
A DLL that adds Inp and Out to 32-bit Visual Basic 4
programs.
inpout32.bas
Declarations for Inp and Out
inpout32.vbp
Visual Basic 4 test program for inpout32
inpout32.frm
Form for inpout32.vbp
inpout32.dpr
Source code for inpout32 (Delphi 2.0)
***
How to use inpout32:
1. Copy inpout32.dll to your default Windows directory.
2. Add inpout32.bas to your Visual Basic project (File menu,
Add File).
3. To write a byte to a port:
Out PortAddress, ByteToWrite
To read a byte from a port:
ByteRead = Inp(PortAddress)
Examples:
Out &h378, &h55
ByteRead = Inp(&h378)
(Syntax is identical to QuickBasic Inp and Out).
***
How to run the test program (inpout.vbp):
1. Copy inpout32.dll to your default Windows directory.
2. Open the project inpout32.vbp.
3. Set PortAddress equal to the port address you want to
test.
3. Clicking the control button causes the program to write a
value to the port. Each click increments the value,