RT,如何取得所有COM口的列表。比如现在有 通讯端口(COM1),通讯端口(COM2),通讯端口(COM3),Usb To Serial com port(COM4),我就要这1,2,3,4这几个数字
解决方案 »
- 咨询统计语言平台记录问题
- 关于arraylist的复制和合并问题
- ***使用dotfuscator混淆后出现资源未找到错误
- Vsual c#.Net编译完的程序,在没有装visual studio的电脑上运行,要装个怎样的程序?
- 如何对 C:\WINDOWS\system32\inetsrv\MetaBase.xml 进行遍历,修改指定节点等操作~~~
- 怎么自行编写播放MMS流媒体服务器视频的播放器
- HELP
- C# 如何解析html的js中代码获得的url????
- 新手发问。(字符串型的值填到datetimepicker.text中)
- 按时间排序?怎么写这个sql ?
- 关于使用XmlSerializer序列化实体类来操作xml文件
- 关于表的设计与GRIDVIEW查询的问题
{
string yourStr = @"通讯端口(COM1),通讯端口(COM2),通讯端口(COM3),Usb To Serial com port(COM4)";
MatchCollection mc = Regex.Matches(yourStr,"(?<=COM)\\d+");
List<int> ports = new List<int>();
foreach (Match item in mc)
{
ports.Add(int.Parse(item.Value));
}
foreach (int port in ports)
{
Console.WriteLine(port);
}
//ports就是你要的
}
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM]
"\\Device\\Serial0"="COM1"
即插即用设备先要注册才能使用。即:当能使用之前,注册表中已经注册好了。随便找个USB接口设备一试便知。其它传统接口,一般要重启后才能使用。
RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm");
if (keyCom != null)
{
string[] sSubKeys = keyCom.GetValueNames();
this.cbbPort.Items.Clear();
foreach (string sName in sSubKeys)
{
string sValue = (string)keyCom.GetValue(sName);
this.cbbPort.Items.Add(sValue);
}
}
Win32 API EnumPorts
if (spname.Length > 0)
{
foreach (string spName in spname)
comboBox_spName.Items.Add(spName);//得到所有串口号
}