在vb我是这样做的,不知delphi是如何做,不知对你有没有用。
Public Declare Function CreateFile Lib "kernel32" 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" (ByVal hObject As Long) As Long'// API Structures
Public Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
End TypePublic 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

解决方案 »

  1.   


    谢谢 kevincomein(白菜) ,你这个方法我会。delphi也可以这么做。
    我的意思是原来的程序是用汇编写的,不能去改,他需要的是串口的地址。
    如:com1:0x3f8,com2:0x2f8。我需要的能够用程序得到这个。
    我像应该可以得到吧,因为在系统属性我们看到串口的资源可以这个地址。那程序中一定有可到地址的命令。谢谢大家的参与。期待高手啊。
      
      

  2.   

    谢谢:kevincomein(白菜) 你这个方法我会,在delphi中一样行得通。
    我的意思是我原来的程序是用汇编写的,是直接对串口地址进行操作,现在他不能改动。我想得到某个串口的地址,然后传给他。譬如:com1 0x3f8
      

  3.   

    这可能是你所需要的:获取串口状态和端口地址的组件,仅限于windows98或95。http://delphi.icm.edu.pl/ftp/d30free/commst.zip