Ler o nome das portas COMM disponíveis

2 respostas
D

Olá usuários do GUJ;

Gostaria de saber como criar um metodo que acesse o arquivo de registro e informe quais são as portas COMM.
Embaixo tem um código do método em C++.

void  MostraNomesCom(void)

{

TRegistry *Registro = new TRegistry; //Cria e aloca espaço na memória para o objeto.

TStringList *Lista = new TStringList; //Cria e aloca espaço na memória para o objeto.
Registro->RootKey = HKEY_LOCAL_MACHINE; //Define chave raiz.
Registro->OpenKey("HARDWARE\\DEVICEMAP\\SERIALCOMM", false); //Abre a chave.
//Obtém uma string contendo todos os nomes de valores associados com a chave atual.
Registro->GetValueNames(Lista);
//Count é a quantidade de portas existentes.
for(int indice=0; indice <= Lista->Count-1; indice++)
   //Pega nos nomes das portas.
   Form1->ComboBoxPorta->Items->Add(Registro->ReadString( Lista->Strings[indice] ));

}

Ficaria grato se alguém me ajudasse a solucionar.

Obrigado desde já.

OBS:Sou novo nu GUJ e se eu tiver postado na sessão errada, eu irei mudar de sessão.

2 Respostas

ViniGodoy

Use para isso a biblioteca RXTX.

Esse código está usando as bibliotecas do Borland C++ Builder, para acessar o registro do Windows.
Portanto, esse código, além de um bocado antigo, não é portável - seja entre múltiplos compiladores ou múltiplos SOs.

O ideal hoje em dia seria usar algo como a boost ASIO:
http://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio.html
http://www.boost.org/doc/libs/1_43_0/doc/html/boost_asio/overview/serial_ports.html

E fazer as janelas no QT.

D

Valeu, Vou estudar a API RXTX para montar o código.

Obrigado Vini.

Pode encerrar o tópico.

Criado 5 de janeiro de 2013
Ultima resposta 7 de jan. de 2013
Respostas 2
Participantes 2