Así no está bien. Combo1.ListIndex = 0, tiene el valor 0 y el puerto 0 no existe.
Podría ser: MSComm1.ComPort = ComboBoxCOM.ListIndex + 1
Acá ya está una interfaz completa y funcionando donde puedes ver cómo se hace.
Interfaz RS232 PIC PC (Proyecto Completo VB6)
Te recomiendo que mires la versión 2 que tiene algunas mejoras.
Ahora uso otro método para cargar los puertos disponibles al ComboBox:
Y para establecer el número del puerto al MSCOMM, lo hago de ésta forma:Código:' Buscar del COM1 al COM16 (El MSCOMM de VB6 sólo admite hasta 16 puertos) cmbPort.Clear ' Método sin API ' Este método reconoce todos los virtuales, pero si hay más de 16 virtuales ' el método falla agregando puertos falsos si el For es mayor a 16 For i = 1 To 16 frmMain.RS232.CommPort = i On Error Resume Next frmMain.RS232.PortOpen = True If Err = 0 Then frmMain.RS232.PortOpen = False cmbPort.AddItem "COM" & i End If Next i cmbPort.ListIndex = 0 ' Aquí yo establezco el indice desde un valor del registro.
Código:' Obtener sólo el número del puerto seleccionado ComPort = CStr(Mid(cmbPort.Text, 4)) ' Al hacer ésto, se elimina "COM" MSCOMM1.CommPort = ComPort
Voy hacer pruebas y comento.
Por cierto, la versión 2 de tu interfaz es la leche. Buen trabajo.
se parece y mucho solo que el net es con objetos
y lo mejor que con el net es hasta mas facil
no tienen sentido hacer esto en vb6 a menos que lo vayas a usar en un pc antiguo
Exacto, es para usar en un PC antiguo. En el 2008, cuando hice tutoriales de Visual C# y sobre todo VB .net 2008, muchos usuarios de la época me pedían que lo hiciera con VB 6 y sin rechistar, precisamente por este foro y otros muchos. No lo he llegado hacer porque lo vi muy obsoleto y estaba el VB .net que es lo que se usa ahora.
Aunque no lo creas, hoy en día siguen con el santo VB 6 hasta en Sur y Centro de América, aunque soy de España, me lo han pedido en plan bestia. Así que haré con muchos lenguajes diferentes un tutorial que soporte todos los lenguajes de Visual Studio y Java. El que quiera una demo en PDF lo adjunto y así de paso me orientan como va y como quieren que sea. Más adelante me meteré con Raspberry 2 que lo he comprado y probado, una pasada. Ya sabes analogico
Siguiendo con el tema principal.
¿Mi código qué tiene de malo con el tuyo en esta parte? Lo bueno que este te dice hasta el nombre de todo los puerto virtuales que tengas en uso.
Código:
Set WMIObjectSet = GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_PnPEntity") 'Win32_SerialPort")
For Each wmiobject In WMIObjectSet
If InStr(wmiobject.Name, "COM") Then '
Form1.ComboBoxCOM.AddItem wmiobject.Name
End If
Next
Set WMIObjectSet = Nothing

en el ComoBox.
Lo veo más chulo. Si al final no me funciona como quiero, lo hago de tu forma de siempre.
Saludos.
Última edición por un moderador: