我在做一个串口的通讯程序,想要知道当前可用的串口总数,和串口定义。
请高手赐教。
在线等待。多谢!
请高手赐教。
在线等待。多谢!
解决方案 »
- 局域网内,用VB如何读写其他电脑中某目录下的一个文本文件
- 访问excel 表时 会出现 不支援你的排序类型 错误提示
- 如何用copymemory给一个数组赋值(已知一个地址,要得到该地址的内容)
- 如何在VB的RichTextBox中设置上标和下标?
- 如何使用Canvas.Drawline 在Activereport2中画线?下面的代码出错:
- 请问各位 有什么地方能提供一个能下载MSDN的网站啊?
- 〖如何用VB做ActiveX DLL,我一点都不懂!〗
- 高手们,怎样做到类似于timer控件的高速定时器,能精确到10ms以下级别的。
- 如何使弹出的窗口位于所有应用程序窗口的最前面?
- 在单击list打开的对话框中,如何取得list的数据?
- 怎么得知一个文件夹下面文件的个数啊?
- 经典的窗口界面和经典的Msgbox的窗口!您有吗?而且还和QQ有关!
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long
Private Const HKEY_LOCAL_MACHINE = &H80000002Private Sub Command1_Click()
Dim ret As Long, REG As Long, i As Long
Dim ValueName As String, lValueName As Long, ValueType As Long
Dim cntCOM As Long
RegOpenKey HKEY_LOCAL_MACHINE, "HARDWARE\DEVICEMAP\SERIALCOMM", REG
cntCOM = 0
i = 0
Do
ValueName = String(255, Chr(0))
lValueName = 256
ret = RegEnumValue(REG, i, ByVal ValueName, lValueName, 0, ValueType, ByVal 0&, ByVal 0&)
If ret = 0 Then
cntCOM = cntCOM + 1
i = i + 1
Else
Exit Do
End If
Loop
MsgBox "本机有" & CStr(cntCOM) & "个COM口可用!"
End Sub
Private Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, ByVal lpReserved As Long, lpcSubKeys As Long, lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, lpcbSecurityDescriptor As Long, lpftLastWriteTime As FILETIME) As LongType FILETIME ' 8 Bytes
dwLowDateTime As Long
dwHighDateTime As Long
End TypeConst HKEY_LOCAL_MACHINE = &H80000002' 获得当前系统的 COM 口的数量
Function GetCOMCount() As Integer
Dim ret As Long, f As FILETIME, cntCOM As Long
RegOpenKey HKEY_LOCAL_MACHINE, "HARDWARE\DEVICEMAP\SERIALCOMM", ret
RegQueryInfoKey ret, "", 0, 0, 0, 0, 0, cntCOM, 0, 0, 0, f
GetCOMCount = cntCOM
End Function