La Web del Programador: Comunidad de Programadores
 
    Pregunta:  51134 - LEER EL PUERTO COM1 EN WIN XP - VFP 8.0
Autor:  Eduardo J. Galetto
Hola Gente

en la Web del programador vi un pequeño programa donde definian como leer el puerto COM1.
Definitivamente no me funciona bajo WinXP.

Yo usaria MSCOMM32.OCX para la lectura del puerto, pero necesito desarrollar una DLL por lo que no puedo utilizarla

la balanza que tengo que leer es una KRETZ Single . (Solo envia información)

(Programo en VFP 8.0 y sistema operativo Win XP)

yo estoy PROBANDO con este pequeño código:

nH = FOPEN("COM1.DOS",10)

MESSAGEBOX(nH) && es para que me duelva el numero que asigno o -1 si no pudo habrir el puerto

MESSAGEBOX(FGETS(nH,10))

= FCLOSE(nH)

pero realmente me trae porquerias. Ahora lo que mas me desconcierta es que si yo antes hago leer ese puerto (COM1) con la OCX antes mencionada, despues este pequenos PRG funciona Bien.
Me poduen dar una mano con esto.
De cualquier forma me gustaría una respuesta para saber si se recibió este correo o si me explrese correctamente..

Toda ayuda Bienvenida sea ya que necesito Confirmar si puedo desarrollar esto dentro de este fin de semana y principio de la otra.

Desde ya, mil gracias

  Respuesta:  Leonardo Alfaro A.
Eduardo, Saludos y Bendiciones.
Prueba esto, a ver si te sirve.

*Funcion que nos permitira saber que puertos tenemos en nuestra PC instalados

DECLARE INTEGER CreateFile IN kernel32;
STRING lpFileName, INTEGER dwAccess, INTEGER dwShareMode,;
INTEGER lpSecurityAttr, INTEGER dwCreationDisp,;
INTEGER dwFlagsAndAttr, INTEGER hTemplateFile

DECLARE INTEGER CloseHandle IN kernel32 INTEGER hObject

FUNCTION TestPort (lcPort)
#DEFINE OPEN_EXISTING 3
#DEFINE GENERIC_READ 2147483648 && 0x80000000
#DEFINE FILE_FLAG_OVERLAPPED 1073741824 && 0x40000000
#DEFINE INVALID_HANDLE_VALUE -1

LOCAL hPort
hPort = CreateFile (lcPort, GENERIC_READ, 0,0,;
OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0)

= CloseHandle(hPort)
RETURN (hPort INVALID_HANDLE_VALUE)

&&--TESTEAMOS CADA UNO DE LOS PUERTOS
? "Testing port COM1:", TestPort("COM1")
? "Testing port COM2:", TestPort("COM2")
? "Testing port COM3:", TestPort("COM3")
? "Testing port COM4:", TestPort("COM4")

WAIT wind "Testing port COM1:", TestPort("COM1")