Tipp 0346 Modem-Test mit dem MSComm-Control
Autor/Einsender:
Datum:
  Gerhard Leutkircher
12.07.2003
Entwicklungsumgebung:   VB 6
Eines der am wenigsten beachteten aber dafür recht mächtigen VB-Controls ist das Kommunikations-Steuerelement MS-Comm. Damit können Daten über eine serielle Schnittstelle gesendet bzw. empfangen werden, und somit dafür sorgen, dass Anwendungen miteinander kommunizieren können.
Dieser Tipp zeigt, wie ein betriebsbereites Modem an einer beliebigen seriellen Schnittstelle (COM1 - COM4) erkannt und angesprochen werden kann. Ist ein Modem angeschlossen lässt sich auch die max. Übertragungsrate des Ports ermitteln.
Code im Codebereich des Moduls
 
Option Explicit

Dim maxBaud As String
Dim ComPort As String
Dim i As Integer

Private Sub Command1_Click()
  ComPort = ""
  maxBaud = ""

  Label1(0).Caption = ""
  Label1(1).Caption = ""

  For i = 0 To 4
    Label1(i).Visible = False
  Next

  Command1.Enabled = False
  Command2.Enabled = False
  Me.MousePointer = vbHourglass

  DoEvents
  SearchModem

  If Not ComPort = "" Then
    For i = 0 To 4
      Label1(i).Visible = True
    Next

    Label1(4).ForeColor = &H8000&
    Label1(4).Caption = "Modem gefunden an:"

    Label1(0).Caption = " " & ComPort
    Label1(1).Caption = " " & maxBaud
  Else
    Label1(4).ForeColor = &HFF&
    Label1(4).Caption = "Kein Modem gefunden!"
    Label1(4).Visible = True
  End If

  Command1.Enabled = True
  Command2.Enabled = True
  Me.MousePointer = vbDefault
End Sub

Private Function SearchModem()
  Dim j As Integer
  Dim BaudRate()

  On Error Resume Next

  BaudRate = Array("256000", "128000", "115200", "57600", _
        "56000", "38400", "28800", "19200", "14400", "9600", _
        "4800", "2400", "1200", "600", "300", "110")

  Label1(4).Visible = True
  Label1(4).ForeColor = &H0&

  For i = 1 To 4
    Label1(4).Caption = "Teste COM-Port" & Str(i)
    MSComm1.CommPort = i

    MSComm1.Settings = "9600,N,8,1"
    
    MSComm1.PortOpen = True
    DoEvents
    If MSComm1.DSRHolding = True And MSComm1.CTSHolding = True Then
      ComPort = "COM" & MSComm1.CommPort

      For j = 15 To 0 Step -1
        MSComm1.PortOpen = False
        MSComm1.Settings = BaudRate(j) & ",N,8,1"
        Err = 0
        MSComm1.PortOpen = True

        If Err = 0 Then
           maxBaud = BaudRate(j) & " Kbps"
        Else
          Exit For
        End If
      Next j

      MSComm1.PortOpen = False
    End If

    MSComm1.PortOpen = False
  Next
End Sub
 
Wichtiger Hinweis
Um diesen Tipp ausführen zu können, muss die Komponente Microsoft Comm Control 6.0 in das Projekt eingebunden werden.

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (3,5 kB) Downloads bisher: [ 2335 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 18. September 2011