获取串口映射的COM端口号
背景:近期由于项目需要,需要操作短信猫,当短信猫插入电脑后,会根据当前PC状况,映射COM口,这里需动态获取短信猫映射的COM端口号。
编程语言C#:
具体代码如下
public enum HardwareEnum { Win32_PnPEntity // 所有设备 } /// <summary> /// 获取相应COM口号 /// </summary> private static string getComInfo(HardwareEnum hardType, string propkey) { List<string> deviceslist = new List<string>(); StringBuilder comsb = new StringBuilder(); try { using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select *from " + hardType)) { var hardInfos = searcher.Get(); foreach (var hardInfo in hardInfos) { Object deviceprop=hardInfo.Properties[propkey].Value;
if (deviceprop!=null&&deviceprop.ToString().Contains("COM")) //避免出现空设备值异常 { deviceslist.Add(hardInfo.Properties[propkey].Value.ToString()); } } searcher.Dispose(); } string[] devicestemps = deviceslist.ToArray(); foreach (string device in devicestemps) { if (device.Contains("AT")) //这里短信猫需操作AT口 { int index = device.IndexOf("("); ); //得到形如"3)"形式 , devicetemp.Length - ); //直接得到相应COM端口号 comsb.Append(comnum + "*"); //用“*”号隔开,当出现多个的时候 } } string comsbstring=comsb.ToString(); , comsbstring.Length - ); //移除最后一个“*”号 } catch { return null; } finally { deviceslist = null; } } /// <summary> /// 获取COM端口号 /// </summary> public static string getComNum() { string comnums = getComInfo(HardwareEnum.Win32_PnPEntity, "name"); return comnums; //返回多个COM号的组成,可在这里进行解析,也可在调用时进行解析,这里不做过多赘述 }
注:1.通过该种方式可以获取实际你所需要操作的COM端口号。
2.这里通过“*”对COM端口号进行拼接,可以通过解析返回值,判断当前时候连接了多个短信猫,以便做下一步操作。
by ShawnChen 2017.6.26 晚
获取串口映射的COM端口号的更多相关文章
- C# 获取 串口 设备名称 与 串口号 ManagementObjectSearcher类
1.效果图: 2.代码 class Program { static void Main(string[] args) { GetComList(); } private static void Ge ...
- Request.Url.Port 获取不到正确的端口号
今天遇到一个很奇怪的事情,用request.url.port来获取一个请求的端口,返回是80 ,很纳闷啊我的请求上面是http://www.XX.com:8088 啊,怎么会是80啊,太不可思议了! ...
- jfinal获取当前访问路径和端口号
public void generateSingleLicense() throws Exception { System.out.println(getRequest().getRequestURL ...
- Websocket-Sharp获取客户端IP地址和端口号
//OnOpen事件 protected override void OnOpen() { string IPAddress = base.Sessions.Sessions.First().Cont ...
- Apache 日志管理,获取客户端端口号
日志管理分类 日志文件是用户管理和监控 Apache 安全的非常好的第一手资料,它清晰地记录了客户端访问 Apache 服务器资源的每一条记录,以及在访问中出现的错误信息,可以这样说,Apache 可 ...
- C# 获取随机可用端口号
TCP与UDP段结构中端口地址都是16比特,可以有在0---65535范围内的端口号.对于这65536个端口号有以下的使用规定: (1)端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来 ...
- js中如何获取页面的Url,域名和端口号
有时候通过获取上个页面的Url来做一个跳转,获取域名防止非正常访问 获取上一个页面的一个URL,这个URL一般做一个页面的跳转 window.location.href <script>w ...
- JavaScript获取当前站点的域名和端口号
获取域名(第一种方法): document.hostname 获取域名(第二种方法): document.domin 获取端口号: location.port 获取主机+端口号: location.h ...
- python网络编程,通过服务名称和会话类型(tcp,udp)获取端口号,简单的异常处理
作为一个php程序员,同时有对网络方面感兴趣,php就比较蛋疼了,所以就抽了些时间看python 之前学python基础因为工作原因,断断续续的看了个基础,差不多是可以写代码了 最近在看<pyt ...
随机推荐
- Caffe Ubuntu16.04 GPU安装
- 使用OpenCV训练Haar like+Adaboost分类器的常见问题
<FAQ:OpenCV Haartraining>——使用OpenCV训练Haar like+Adaboost分类器的常见问题 最近使用OpenCV训练Haar like+Adaboost ...
- dynamic_cast 转换示例
dynamic_cast 转换示例 /* 带虚函数与不带虚函数转换的区别 dynamic_cast:必须要有虚函数才可以转换 dynamic_cast:只能处理转换指针或引用,不能转换对象 dynam ...
- HDU1005 Number Sequence (奇技淫巧模拟)
A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mo ...
- 定制rpm包---Yum环境搭建
1.1 在yum服务器上创建yum仓库命令 mkdir -p /application/nginx/html/yum cd /application/nginx/html/yum rz #上传rpm包 ...
- dom4j解析xml文档全面介绍
一.dom4j介绍 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点, ...
- 在centos上安装jenkins
摘要: 本篇介绍了如何在linux服务器上安装jenkins 一:使用war安装 官网地址:https://jenkins.io/doc/ Guided Tour This guided tour w ...
- 移动端车牌识别sdk开发包(可下载)
移动端车牌识别是一项基于OCR识别的应用技术.移动端车牌识别过程主要包含五个步骤,其中包括图像采集.图像预处理.车牌定位.字符分割.字符识别.输出结果等一系列计算机算法运算, 第一步[图像采集]:此步 ...
- CentOS7配置更新国内yum源
备份本地yum源文件 cd /etc/yum.repo.d/ mv CentOS-Base.repo CentOS-Base.repo.bakeup 下载国内yum源 阿里云yum源 wget htt ...
- 如何将一个div水平垂直居中?4种方法做推荐
方案一: div绝对定位水平垂直居中[margin:auto实现绝对定位元素的居中], 兼容性:,IE7及之前版本不支持 div{ width: 200px; height: 200px; backg ...