| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
gizmo Lt JG

Registrado: 07 Feb 2003Mensajes: 54
|
Publicado: Lun 20 Oct, 2003 10:52 am Asunto: Puerto paralelo en XP. Ayuda! |
|
|
Hola, necesito controlar el puerto paralelo, tanto leer como mandar datos...Necesito hacer una aplicación muy sencilla que sólo haga eso. He estado echando un vistazo por aquí pero comentáis que para XP se generaban unas excepciones ya que tiene protección al acceder a los puertos. He probado a buscar el Port95Nt.exe y no lo encuentro.
¿Alguien ha hecho esto ya y puede ayudarme?  |
|
| Volver arriba |
|
 |
gizmo Lt JG

Registrado: 07 Feb 2003Mensajes: 54
|
Publicado: Lun 20 Oct, 2003 11:28 pm Asunto: |
|
|
| Hola, ¿alguien lo ha hecho y puede ayudarme? Me urge y si pueden ayudarme...He estado buscando por el foro pero no encuentro el programa...trabajo con Builder6 y XP |
|
| Volver arriba |
|
 |
gizmo Lt JG

Registrado: 07 Feb 2003Mensajes: 54
|
Publicado: Mar 21 Oct, 2003 2:48 pm Asunto: |
|
|
Hola, vuelvo a insistir ya que me urge...
¿Nadie puede ayudarme? |
|
| Volver arriba |
|
 |
gizmo Lt JG

Registrado: 07 Feb 2003Mensajes: 54
|
Publicado: Mar 21 Oct, 2003 7:45 pm Asunto: Lo intento pero no va |
|
|
Hola de nuevo, lo he intentado con ensamblador como dijo FOX en el foro con estas dos funciones:
| Código: | #pragma inline
#include <Classes.hpp>
//---------------------------------------------------------------------------
void out(BYTE c){
asm{
push ax
push dx
mov dx,0x0378
mov al,c
out dx,al
pop dx
pop ax
}
}
BYTE in(void){
BYTE ca;
asm{
push ax
push dx
mov dx,0x0378
in al,dx
mov ca,al
pop dx
pop ax
}
return ca;
} |
Pero como había leído en el foro aparece una excepción de "Privileged instruction" que debe ser porque Windoys NT o XP tienen protección de cara a los puertos...
¿Existe algún componente que lo permita hacer más sencillo para XP?Lo he intentado con port95nt.exe pero no entiendo como agregarlo al Borland... |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mie 22 Oct, 2003 12:16 pm Asunto: |
|
|
He leído en la ayuda del Builder en CreateFile que efectivamente en WNT y XP no se puede acceder a los puertos vía ensamblador pero que se puede hacer con CreateFile, WriteFile,...
He hecho lo siguiente con los consiguiente resultados obtenidos:
| Código: | HANDLE PUERTO=NULL;
void__fastall TForm1::Button1Click(TObject *Sender)
{
char caract;
caract='a';
PUERTO=CreateFile("LPT1",GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
if (PUERTO==INVALID_HANDLE_VALUE) Application-> Terminate();
error=TransmitCommChar(PUERTO,caract);
} | Si pongo COM1,COM2,...la aplicación termina pero si pongo LPT1(lo que necesito, puerto paralelo) no termina (en teoría está bien). El problema es que error vale 0 lo que indica que no ha podido transmitir bien.
¿Cómo hay que hacerlo?¿Por qué da error(0) el TransmitCommChar?
¿No existe ningún componente que facilite el acceso a los puertos para Builder en XP? |
|
| Volver arriba |
|
 |
_Willa Capt


Registrado: 28 Ago 2002Mensajes: 169Ubicación: Madrid ( España )
|
Publicado: Mie 22 Oct, 2003 2:15 pm Asunto: Referente al manejo de los puertos paralelos |
|
|
Hola Gizmo,
Busca el la dirección:
http://www.gtek.com/ftp_support_files.html
y descargate el fichero llamado dlportio.zip
Este fichero te enseña la forma de
acceder al puerto paralelo en sistemas 2k/NT,
incluye algunos ejemplos en builder. _________________ Saludos
~~~~~~~~
_Willa
~~~~~~~~
www.avancegame.com |
|
| Volver arriba |
|
 |
|