Identificar Porta serial Disponível

Delphi

25/12/2006

Pessoal, como faço para Identificar porta serial disponivel no PV via porgramação em Delphi. Exemplo quando abrir o programa ele ache
uma porta para se conectar. Eu uso os componente Comport e Mscomm.

Grato
Juarez


Juarezber

Juarezber

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

25/12/2006

Colega,

Faça um for de acordo com a quantidade de portas disponíveis no PC e tente abrí-la.
Exemplo hipotético:

for I := 1 to 4 do
 if OpenX(Com+IntToStr(I)) then
  break;


Deve-se usar blocos try...except para tratar as exceções.


GOSTEI 0
Juarezber

Juarezber

25/12/2006

Zanela, como eu criaria OpenX e Com ?

Grato
Juarez


GOSTEI 0
Massuda

Massuda

25/12/2006

Acredito que a intenção do Aroldo era dar uma idéia de como fazer, não dar um código que funcionasse.

No caso, a sugestão que ele deu é que você deve tentar abrir a porta serial para ver se ela existe. Eu geralmente tento abrir as portas COM1 a COM8 e testo quais portas são modem (o teste é simples: envie AT e se receber um OK é porque a porta está ligada a um modem).


GOSTEI 0
Rodc

Rodc

25/12/2006

As portas seriais ativas no Windows ficam no Regedit, no caminho ´HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm´.


GOSTEI 0
Juarezber

Juarezber

25/12/2006

Rodc, valeu a dica, mas o que eu estou precisando é de
um exemplo de como fazer via programação em delphi.

Abraços
Juarez


GOSTEI 0
Rodc

Rodc

25/12/2006

Você quer saber como acessa o Regedit ou a Porta Serial?

Para acessar o Registry vá no Help do Delphi e pesquise a classe TRegistry, é ela que faz o acesso ao Registry do Windows.


GOSTEI 0
Juarezber

Juarezber

25/12/2006

A porta serial.

Grato
Juarez


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

25/12/2006

Rodc, valeu a dica, mas o que eu estou precisando é de um exemplo de como fazer via programação em delphi. Abraços Juarez

Colega,

Veja se é isto que está procurando:

function TestaPortaCom(Porta: string): Boolean;
var F: file;
begin
  {$I-}
  AssignFile(F, Porta);
  FileMode := 0;
  Reset(F);
  CloseFile(F);
  {$I+}
  TestaPortaCom := (IOResult = 0) and (Porta <> ´´);

end;



GOSTEI 0
POSTAR