loonyroony
asked on
Port Address Detection - URGENT
I am using INPOUT32.DLL to send data to a printer (serial, parallel or usb) and therefore require the port address to send the data to.
I am detecting the port name using GetPrinter(Device, DriverName, Port, DevHandle);
However this simply gives me the name of the port in the format "COM1:", "LPT1:", etc
I need the actual memory address ie "$378", etc to send to the INPOUT32.DLL
This is for an urgent project so i am assigning max points for it! help!
I am detecting the port name using GetPrinter(Device, DriverName, Port, DevHandle);
However this simply gives me the name of the port in the format "COM1:", "LPT1:", etc
I need the actual memory address ie "$378", etc to send to the INPOUT32.DLL
This is for an urgent project so i am assigning max points for it! help!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ok, in for my machine for lpt1 I get:
$0378-$037F
and
$0778-$077B
if anyone knows a brilliant way to determine which is which please let me know :)
I'll make the DLL, for now I think I'll only pass the first range which is 7 long, because that seems to be the case almost always.
$0378-$037F
and
$0778-$077B
if anyone knows a brilliant way to determine which is which please let me know :)
I'll make the DLL, for now I think I'll only pass the first range which is 7 long, because that seems to be the case almost always.
ASKER
cool man thanks :-)
do you have some place I can upload or send the dll to?
ASKER
sure - email me on haroun@mcomputer.com
Guys, in Windows XP the port addresses are protected resources. Doing direct reads and writes to an address is risky at least since you never know what it connects to.
The reason for two ports is easy, btw. One port is used to send command and receive responses. The second port is used to send and receive related data for these commands and responses.
Also, take a look at the following links:
http://www.logix4u.net/inpout32.htm
http://www.logix4u.net/inpout_theory.htm
The reason for two ports is easy, btw. One port is used to send command and receive responses. The second port is used to send and receive related data for these commands and responses.
Also, take a look at the following links:
http://www.logix4u.net/inpout32.htm
http://www.logix4u.net/inpout_theory.htm
ASKER
that sounds great to me :-) i'm sure with a little trial and error i should be able to work out which port is the right one - in the case of LPT1 it's usually 378 so i'd assume that if order of returned ports numbers is always the same then the correct one should always be in the same position. Dangerous things assumptions are but i don't think this one will cast the end of the world spell! :-)