Salut,
Comme le dit si le sujet, je voudrais pouvoir lister les ports serie disponible sur mon PC, cependant cela fait plusieurs jours que je ne trouve aucune solution à mon problème.
Merci d'avance @++
Salut,
Comme le dit si le sujet, je voudrais pouvoir lister les ports serie disponible sur mon PC, cependant cela fait plusieurs jours que je ne trouve aucune solution à mon problème.
Merci d'avance @++
Salut.
Pour lister les ports serie disponibles il faut les lire dans le registre.
Attention, les données qui nous intéressent ici ne sont pas organisées de la même façon suivant l'OS (W98, W 2000, XP...).
J'ai retrouvé ce bout de code qui fonctionne en principe dans tous les cas :
J'espère que cela vous aidera.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 void __fastcall TCPortChoiceFrm::FormCreate(TObject *Sender) { // Prend liste des ports disponibles dans le Registre TRegistry * reg = new TRegistry(); reg->RootKey = HKEY_LOCAL_MACHINE; bool res = reg->OpenKey("Hardware\\DeviceMap\\SerialComm",false); if(res) reg->GetValueNames(CBoxPort->Items); // Liste des ports if(CBoxPort->Items->Count) { // Si nom des clés != COMx, lit valeurs if(CBoxPort->Items->Strings[0].SubString(1,3) != "COM") for(int i=0; i<CBoxPort->Items->Count; i++) CBoxPort->Items->Strings[i] = reg->ReadString(CBoxPort->Items->Strings[i]); } delete reg; // Affiche le port sélectionné : CBoxPort->ItemIndex = CBoxPort->Items->IndexOf(*PortName); }
Tabz
Merci bien TABZ, c'est exactement ce que je recherché!
@++
Partager