borderAndreaVB free resources for Visual Basic developersborder
AndreaVB Visual Basic and VB.NET source code resources - Copyright © 1999-2017 Andrea Tincani
:: Find the COM ports available on your PC

Author  

Andrea Tincani

Language  

VB5, VB6

Operating Systems  

Windows 95, 98 and NT
API Declarations

Option Explicit

'API Declarations
Public Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long

'API Structures
Public Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
End Type

'API constants
Public Const FILE_SHARE_READ = &H1
Public Const FILE_SHARE_WRITE = &H2
Public Const OPEN_EXISTING = 3
Public Const FILE_ATTRIBUTE_NORMAL = &H80

Module

'Return TRUE if the COM exists, FALSE if the COM does not exist
Public Function COMAvailable(COMNum As Integer) As Boolean
    Dim hCOM As Long
    Dim ret As Long
    Dim sec As SECURITY_ATTRIBUTES

   
'try to open the COM port
    hCOM = CreateFile("COM" & COMNum & "", 0, FILE_SHARE_READ + FILE_SHARE_WRITE, sec, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
    If hCOM = -1 Then
        COMAvailable = False
    Else
        COMAvailable = True
       
'close the COM port
        ret = CloseHandle(hCOM)
    End If
End Function

Usage

'Usage:
Sub Command1_Click()
    Dim i As Integer

    For i = 1 To 16
        If COMAvailable(i) Then
            MsgBox "COM" & i & " OK", vbInformation
        Else
            MsgBox "COM" & i & " Not OK", vbExclamation
        End If
    Next
End Sub

:: Navigation

Home

COM and LPT Ports Tips

Previous Tip

Next Tip

:: Search this site
Google
:: Related Topics
icon 14-02-2012 Re: Access 2007 & Win7 by GeoffS
icon 02-11-2004 Re: import in VB some forms from Access by GeoffS
icon 25-06-2004 Re: How do I use this rubbish? (classes) by fabulous
icon 17-03-2004 Comm port list by TiBlay
icon 09-09-2003 Re: getOpenFileName by vincentve
:: Sponsored Links



borderAndreaVB free resources for Visual Basic developersborder
borderAndreaVB Visual Basic and VB.NET source code resources - Copyright © 1999-2017 Andrea Tincaniborder