Ver Mensaje Individual
  #4  
Antiguo 19-06-2003
Edy_A Edy_A is offline
Registrado
 
Registrado: may 2003
Ubicación: Riobamba-Ecuador
Posts: 2
Reputación: 0
Edy_A Va por buen camino
Question

Gracias por la ayuda, pero ahora tengo otro problema.

Tengo en siguiente codigo, que encontre para enviar datos:

procedure TForm1.BtnEnviar(Sender: TObject);
const
NombrePuerto = 'LPT1'; // Puerto paralelo
var
Form1: TForm1;
HandlePuerto: THandle; // Manejador para el puerto
Cadena: String; // Para leer del puerto una cadena de caracteres
dwValor: DWORD; // Tamaño de la lectura
Sta: COMSTAT; // Estado o tamaño del buffer de lectura
bResult: Boolean; // Parámetro de resultado
begin
// Escribir en el puerto
HandlePuerto := Windows.CreateFile(
PChar(NombrePuerto), { Nombre del puerto }
GENERIC_READ or
GENERIC_WRITE, { Modo de apertura: Lectura/Escritura }
0, { Acceso exclusivo }
nil, { Sin atributos de seguridad }
OPEN_EXISTING, { El puerto debe existir }
0, { Sin solapamiento de Lectura/Escritura }
0); { No hay "hTemplate" }
// Comprobar que la apertura ha sido correcta
if (INVALID_HANDLE_VALUE <> HandlePuerto) then
begin
Cadena := Edit1.text + #13#10; //almaceno el contenido de un edit para enviarlo
if (Windows.WriteFile(
HandlePuerto, { Handle del puerto }
PChar(Cadena)^, { Datos a escribir }
Length(Cadena), { Longitud de los datos }
dwValor, { Número de caracteres escritos }
nil) { Sin solapamiento de lecturas/escrituras }
)
then
begin
// la 'Cadena' se ha escrito en el puerto. Podemos comprobarlo si
// miramos 'dwValor' ya que debe ser igual a 'Length(Cadena)'.
// Si no lo es, algo ha ido mal.
end;
end;
Windows.CloseHandle(HandlePuerto); //cerrar puerto
end;

Bueno lo que pasa es que al correr el programa y tratar de enviar algo, el programa se queda muerto, no responde y toca resetearlo.

Lo corrí pasa a paso y va bien hasta que llega a la instrucción Windows.WriteFile en ese momento queda muerto.

De antemano gracias nuevamente
Responder Con Cita