Mi sembra corretto ... l'unica cosa che ti consiglio e' di provare per un numero limitato di porte (che so ... dalla 1 alla 10 ) e non con un ciclo, potenzialmente, infinito ...Originariamente inviato da 08arco80
Per testare esistenza e disponiblilità di una particolare porta, pensavo di impostare il numero della porta da testare (MSComm1.CommPort = n ) e di testarla tentando l'apertura della porta stessa (MSComm1.PortOpen = True ). In questo modo dovrebbe venir restituito un errore nel caso la porta non sia esistente o non sia disponiblie.
Nel caso in cui non ci fosse nessuna COM disponibile, il programma andrebbe avanti senza fermarsi ...
E poi devi usare la Resume e non la Goto ...
codice:Private sub Form_load() Dim ix As Long On Error Resume Next For ix = 1 To 10 MSComm1.commport = ix MSComm1.PortOpen = True If Err = 8002 Then Resume Next Else MsgBox "Aperta la porta " & ix Exit Sub End If Next ix MsgBox "Nessuna porta aperta" End Sub