Ver Mensaje Individual
  #2  
Antiguo 28-04-2010
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Reputación: 22
rretamar Va camino a la famarretamar Va camino a la fama
Un breve código que carga los puertos serie instalados en un componente TComboBox:

Utiliza la clase TRegistry, así que no olvides incluirla en el USES.

Código Delphi [-]
Procedure TFTesteo_de_puerto.Obtener_puertos_serie;
Var
  C: Byte;
Begin
  //
  With TRegistry.Create Do // Crear un objeto Registry
    Try
      ComboBox1.Items.Clear; // Inicializar lista
      rootkey := HKEY_LOCAL_MACHINE; // Obtener los puertos serie instalados
      If keyexists('HARDWARE') Then
        If openkey('HARDWARE', false) Then
          If keyexists('DEVICEMAP') Then
            If openkey('DEVICEMAP', false) Then
              If keyexists('SERIALCOMM') Then
                If openkey('SERIALCOMM', False) Then
                  Begin
                    GetValueNames(ComboBox1.Items); // Carga nombres '\Device\SerialX'
                    For C := 0 To (ComboBox1.Items.Count - 1) Do
                      ComboBox1.Items[ C ] := ReadString(ComboBox1.Items[ C ]);
                  End;
    Finally
      Free; // Liberar objeto
    End;
  // Si no se encontraron puertos, marcar objeto DbcomboBox en rojo
  If ComboBox1.Items.Count = 0 Then
    Begin
      ComboBox1.Color := ClRed; // 0 puerto(s)
      MessageDlg('No se encontraron puertos serie válidos en el equipo.', mtError, [ mbOK ], 0);
      // Deshabilitar botones si no se encontraron puertos serie válidos
      BitBtn1.Enabled := False;
      BitBtn2.Enabled := False;
    End
  Else
    ComboBox1.Color := ClWindow; // 1 o más puerto(s)
End;

Saludos !
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.
Responder Con Cita