.net获取串口列表
2013-07-20 08:30
274 查看
//方法一 String[] Str2 = System.IO.Ports.SerialPort.GetPortNames(); if (Str2.Length > 0) { for (int k = 0; k < Str2.Length; k++) { comboBoxEdit1.Properties.Items.Add(Str2[k]); } } //方法二 String[] Str2 = Gprs.GetSerialPortNames(); if (Str2.Length > 0) { for (int k = 0; k < Str2.Length; k++) { comboBoxEdit1.Properties.Items.Add(Str2[k]); } } //方法三 RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm"); if (keyCom != null) { string[] sSubKeys = keyCom.GetValueNames(); comboBoxEdit1.Properties.Items.Clear(); foreach (string sName in sSubKeys) { string sValue = (string)keyCom.GetValue(sName); comboBoxEdit1.Properties.Items.Add(sValue); } }
其中方法二的方法不是.net自带的需要自己写:
public string[] GetSerialPortNames() { string[] ports = null; List<string> portsList = new List<string>(); uint HKEY_LOCAL_MACHINE = 0x80000002; int hKey = -1; int ret = RegOpenKey(HKEY_LOCAL_MACHINE, @"Hardware\DEVICEMAP\SERIALCOMM", ref hKey); try { if (ret == 0) { int index = 0; int BufferSize = 255; int ERROR_NO_MORE_ITEMS = 259; string valueName = "".PadRight(BufferSize, ' '); int valueNameLength = BufferSize; int valueLength = BufferSize; string value = "".PadRight(BufferSize, ' '); while (RegEnumValue(hKey, index, ref valueName, ref valueNameLength, 0, 0, ref value, ref valueLength) != ERROR_NO_MORE_ITEMS) { if (valueLength > 0) { if (value[valueLength - 1] == 0) valueLength -= 1; portsList.Add(value.Substring(0, valueLength)); } index += 1; valueName = "".PadRight(BufferSize, ' '); valueNameLength = BufferSize; valueLength = BufferSize; } } } catch (Exception) { } finally { if (ret == 0) RegCloseKey(hKey); } if (portsList.Count == 0) ports = new string[0]; else ports = portsList.ToArray(); return ports; }
这里的三个方法第一个使用的是.net自带的类进行函数调用,第二个是使用win32 的api方法,第三个是读取注册表信息。
相关文章推荐
- c#获取本机串口列表
- C#获取串口列表
- 在.net平台中 获取ODBC数据对象的列表
- C#获取串口列表(可用于实现实时监控串口)
- .Net获取局域网中可以ping通的IP列表
- .net 获取odbc驱动列表
- 使用.net FtpWebRequest 实现FTP常用功能 上传 下载 获取文件列表 移动 切换目录 改名
- C#获取串口列表 ZT
- .NET基础扩展系列-如何获取事件的响应函数列表
- 获取串口列表
- C++获取串口列表的方法
- C#获取串口列表实现实时监控串口
- C#中获取串口与并口列表
- .NET解析xml字符串,通过反射给实体类对象赋值,获取实体类数据列表
- 获取系统可用串口列表
- delphi 获取串口列表
- VB.NET中获取串口列表
- C# 获取打印机列表以及串口
- c#获取本机的串口列表
- 使用.net FtpWebRequest 实现FTP常用功能 上传 下载 获取文件列表 移动 切换目录 改名 .