如何获得本机上可用的串口信息,包括串口的编号,例如:COM1、COM3等等。请各位大侠指教!谢谢!
解决方案 »
- 请问下,page setup上的print headings是api的哪个属性控制的
- 请问哪里提供俄罗斯方块图片下载
- RegDeleteKey
- VB写DLL.继承Active Server Page发现的问题
- 如何把结构中的数据写入数组??
- 在VB中可以加载JIF图片吗?
- 怎样把MDI窗体的最大化按钮灰掉
- 新手请教:怎么用VB做一个按纽,按一下就在磁盘上生成一个文件?
- 高分求解:使用SHBrowseForFolder API可以打开浏览文件夹对话框,如何让"确定"按钮"的enable状态随文件夹中是否有要找的文件的是否存在而
- 第一次用VB控制步进电机,求解释
- 寻求 IC卡读写器例子
- 使用mscomm控件,如何判断机器有几个串口
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hkey As Long) As Long
Public Declare Function RegEnumValueAsAny 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 Any, lpcbData As Long) As Long
Public Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias "ExpandEnvironmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As Long) As LongPublic Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003Public Const REG_BINARY = 3
Public Const REG_DWORD = 4
Public Const REG_NONE = 0
Public Const REG_SZ = 1
Public Const REG_EXPAND_SZ = 2
Public Const REG_DWORD_BIG_ENDIAN = 5
Public Const REG_MULTI_SZ = 7Public Const READ_CONTROL = &H20000
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
Dim lKey As StringPublic Function Read_Reg()
Dim hkey As Long
Dim ret As Long
Dim lenData As Long
Dim typeData As Long
Dim Name As String
Dim lenName As Long
Dim idx As Long
Dim tName As String * 256
Dim cKey As Long
Dim sKey As String
Dim SSS As String
SSS = "#"
cKey = &H80000002
sKey = "HARDWARE\DEVICEMAP\SERIALCOMM"
ret = RegOpenKeyEx(cKey, sKey, 0, KEY_ALL_ACCESS, hkey)
If ret <> 0 Then Exit Function
ret = 0
idx = 0
While ret = 0
lenName = 256
ret = RegEnumValueAsAny(hkey, idx, tName, lenName, ByVal 0, typeData, ByVal vbNullString, lenData)
If ret <> 0 Then
RegCloseKey hkey
Read_Reg = SSS
Exit Function
End If
Name = String(lenName + 1, Chr(0))
lenName = Len(Name)
If typeData = REG_SZ Then
Dim S As String
S = String(lenData, Chr(0))
RegEnumValueAsAny hkey, idx, Name, lenName, ByVal 0, typeData, ByVal S, lenData
S = Left(S, InStr(S, Chr(0)) - 1)
SSS = SSS + S + "#"
'SSS = SSS + IIf(lenName = 0, "(默认)", Left(Name, InStr(Name, Chr(0)) - 1)) & " = " & S & vbCrLf
End If
idx = idx + 1
Wend
RegCloseKey hkey
Read_Reg = SSS
End Function
http://www.refound.net/download/soft.asp?id=25