如何调用象超级终端中设置串口的窗口.谢谢.

解决方案 »

  1.   

    声明Private Type DCB
    DCBlength As Long
    BaudRate As Long
    fBitFields As Long
    wReserved As Integer
    XonLim As Integer
    XoffLim As Integer
    ByteSize As Byte
    Parity As Byte
    StopBits As Byte
    XonChar As Byte
    XoffChar As Byte
    ErrorChar As Byte
    EofChar As Byte
    EvtChar As Byte
    wReserved1 As Integer 'Riservato. Non utilizzare
    End TypePrivate Type COMMTIMEOUTS
        ReadIntervalTimeout As Long
        ReadTotalTimeoutMultiplier As Long
        ReadTotalTimeoutConstant As Long
        WriteTotalTimeoutMultiplier As Long
        WriteTotalTimeoutConstant As Long
    End TypePrivate Type COMMCONFIG
        dwSize As Long
        wVersion As Integer
        wReserved As Integer
        dcbx As DCB
        dwProviderSubType As Long
        dwProviderOffset As Long
        dwProviderSize As Long
        wcProviderData As Byte
    End Type
    Private Type COMMPROP
            wPacketLength As Integer
            wPacketVersion As Integer
            dwServiceMask As Long
            dwReserved1 As Long
            dwMaxTxQueue As Long
            dwMaxRxQueue As Long
            dwMaxBaud As Long
            dwProvSubType As Long
            dwProvCapabilities As Long
            dwSettableParams As Long
            dwSettableBaud As Long
            wSettableData As Integer
            wSettableStopParity As Integer
            dwCurrentTxQueue As Long
            dwCurrentRxQueue As Long
            dwProvSpec1 As Long
            dwProvSpec2 As Long
            wcProvChar(1) As Integer
    End Type
     Private Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
    Private Declare Function GetCommProperties Lib "kernel32" (ByVal hFile As Long, lpCommProp As COMMPROP) As Long
    Private Declare Function GetCommState Lib "kernel32" (ByVal nCid As Long, lpDCB As DCB) As Long
    Private Declare Function SetCommState Lib "kernel32" (ByVal hCommDev As Long, lpDCB As DCB) As Long
    Private Declare Function BuildCommDCB Lib "kernel32" Alias "BuildCommDCBA" (ByVal lpDef As String, lpDCB As DCB) As Long
    Private Declare Function CommConfigDialog Lib "kernel32" Alias "CommConfigDialogA" (ByVal lpszName As String, ByVal hWnd As Long, lpCC As COMMCONFIG) As Long
    Private Declare Function GetCommTimeouts Lib "kernel32" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long
    Private Declare Function SetCommTimeouts Lib "kernel32" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As LongConst GENERIC_READ = &H80000000
    Const GENERIC_WRITE = &H40000000
    Const OPEN_EXISTING = 3
    Const FILE_FLAG_OVERLAPPED = &H40000000
    Dim hPort As Long
    Dim property As COMMPROP
    Dim PropDCB As DCB
    Dim cc As COMMCONFIG
    Dim NomeCom As String
    Dim TimeOuts As COMMTIMEOUTS
    Const ONE5STOPBITS = 1
    Const ONESTOPBIT = 0
    Const TWOSTOPBITS = 2
    Const BAUD_075 = &H1&
    Const BAUD_110 = &H2&
    Const BAUD_134_5 = &H4&
    Const BAUD_150 = &H8&
    Const BAUD_300 = &H10&
    Const BAUD_600 = &H20&
    Const BAUD_1200 = &H40&
    Const BAUD_1800 = &H80&
    Const BAUD_2400 = &H100&
    Const BAUD_4800 = &H200&
    Const BAUD_7200 = &H400&
    Const BAUD_9600 = &H800&
    Const BAUD_14400 = &H1000&
    Const BAUD_19200 = &H2000&
    Const BAUD_38400 = &H4000&
    Const BAUD_56K = &H8000&
    Const BAUD_57600 = &H40000
    Const BAUD_115200 = &H20000
    Const BAUD_128K = &H10000
    Const BAUD_USER = &H10000000实现
    Private Sub Command6_Click()
    Dim cc As COMMCONFIG
    cc.dwSize = 255
    cc.wVersion = 1
    NomeCom = "COM1"
    retval = CommConfigDialog(NomeCom, Form1.hWnd, cc)
    retval = SetCommState(hPort, cc.dcbx)
    End Sub
      

  2.   

    Private Declare Function ConfigurePort Lib "winspool.drv" Alias "ConfigurePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As LongDim retVal As Long
    retVal = ConfigurePort("", Me.hwnd, "COM1:")
      

  3.   

    谢谢JennyVenus.我试成功了.另To: sxs69
    我试了你的例子, 但没有效果, 其中的第二个参数好象应该是handle to parent window of the dialog box, 就用Me.hwnd就可以了吗?