Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-03-2015
golf2008 golf2008 is offline
Miembro
 
Registrado: feb 2008
Posts: 151
Poder: 17
golf2008 Va por buen camino
Como detectar puerto serie Abierto

Hola a todos, les quería preguntar como se puede hacer para detectar si un puerto serie está abierto.

Estoy trabajando en un Servidor Fiscal.

Desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 03-03-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
golf2008,

Cita:
Empezado por golf2008
...como se puede hacer para detectar si un puerto serie está abierto...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  hCom : LongWord;
  ComSerial : Byte = 1;

implementation

{$R *.dfm}

// Abre un Puerto Serial Habilitado en Windows
function OpenPort(COMSerial : Byte) : Boolean;
var
   UserMsg : String;
   COMPort : String;
begin

   if (COMSerial = 0) then
   begin
      UserMsg := 'Puerto Serial Invalido';
      MessageDlg(UserMsg,mtError,[mbOK],0);
      Result := False;
      Exit;
   end;

   COMPort := '\\.\COM' + IntToStr(COMSerial);

   hCom := CreateFile(PChar(COMPort), GENERIC_READ OR GENERIC_WRITE, 0, Nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
   if hCom = INVALID_HANDLE_VALUE then
   begin
      UserMsg := 'El Puerto de Comunicacion Serial No Esta Habilitado en Windows';
      MessageDlg(UserMsg,mtError,[mbOK],0);
      hCom := 0;
      Result := False;
      Exit;
   end;

   UserMsg := Format('El Puerto de Comunicacion Serial COM%d Fue Abierto',[ComSerial]);
   MessageDlg(UserMsg,mtInformation,[mbOK],0);
   Result := True;

end;

// Cierra un Puerto Serial Habilitado en Windows
function ClosePort(COMSerial : Byte) : Boolean;
var
   UserMsg : String;
begin

   If hCom > 0 then
   begin

      if not CancelIo(hCom) then
      begin
         UserMsg := 'CancelIo : ' + SysErrorMessage(GetLastError);
         MessageDlg(UserMsg,mtError,[mbOK],0);
         Result := False;
         Exit;
      end;

      if not CloseHandle(hCom) then
      begin
         UserMsg := 'CloseHandle : ' + SysErrorMessage(GetLastError);
         MessageDlg(UserMsg,mtError,[mbOK],0);
         Result := False;
         Exit;
      end;

      UserMsg := Format('El Puerto de Comunicacion Serial COM%d Fue Cerrado',[ComSerial]);
      MessageDlg(UserMsg,mtInformation,[mbOK],0);
      Result := True;
      hCom := 0;

   end
   else
   begin
      UserMsg := Format('El Puerto de Comunicacion Serial COM%d no esta Abierto',[ComSerial]);
      MessageDlg(UserMsg,mtError,[mbOK],0);
      Result := True;
   end;

end;

// Abre un Puerto Serial en Windows
procedure TForm1.Button1Click(Sender: TObject);
begin
   OpenPort(ComSerial);
end;

// Cierra un Puerto Serial en Windows
procedure TForm1.Button2Click(Sender: TObject);
begin
   ClosePort(ComSerial);
end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, permite abrir y cerrar un puerto serial que este físicamente habilitado en Windows.

Espero sea útil

Nelson.
Responder Con Cita
  #3  
Antiguo 04-03-2015
golf2008 golf2008 is offline
Miembro
 
Registrado: feb 2008
Posts: 151
Poder: 17
golf2008 Va por buen camino
Ok, muchas gracias.

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo detectar si un formulario ya está abierto? mbguantay Varios 8 10-02-2011 17:20:56
Voltaje como dato por el Puerto Serie aeff ASM y Microcontroladores 7 07-02-2010 22:03:58
Como detectar el puerto serie jlcorona Internet 6 08-05-2008 23:22:56
Como dectectar los puerto serie y paralelo de mi pc kurono Varios 2 06-08-2007 05:19:36
Detectar archivo abierto StartKill API de Windows 2 14-12-2004 16:05:31


La franja horaria es GMT +2. Ahora son las 00:13:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi