C# 过滤SerialPort端口
C#中的SerialPort类只能通过SerialPort.GetPortNames()来获取端口名字,而且出来都是COM+数字的字样,如果我要识别COM端口是什么设备的,它就无能为力了,此时我们可以使用ManagementObjectSearcher获取所有COM&LPT的port,然后根据名字或者description来识别端口:
try
{
//{4d36e978-e325-11ce-bfc1-08002be10318}为设备类别port(端口(COM&LPT))的GUID
ManagementObjectSearcher searcher = new ManagementObjectSearcher(
"root\\CIMV2",
"SELECT * FROM Win32_PnPEntity WHERE ClassGuid=\"{4d36e978-e325-11ce-bfc1-08002be10318}\""
);
foreach (ManagementObject queryObj in searcher.Get())
{
string name = queryObj.GetPropertyValue("Name").ToString();
string desc = queryObj.GetPropertyValue("Description").ToString(); }
}
catch (Exception ex)
{
//Log.w
}
如果事先知道某类port的名字特征,如知道Description为“abc”,就可以把ManagementObjectSearcher的第二个参数改为:
try
{
//{4d36e978-e325-11ce-bfc1-08002be10318}为设备类别port(端口(COM&LPT))的GUID
ManagementObjectSearcher searcher = new ManagementObjectSearcher(
"root\\CIMV2",
"SELECT * FROM Win32_PnPEntity WHERE Name LIKE '%abc%'"
);
foreach (ManagementObject queryObj in searcher.Get())
{
string name = queryObj.GetPropertyValue("Name").ToString();
string desc = queryObj.GetPropertyValue("Description").ToString();
}
}
catch (Exception ex)
{
//Log.w
}
这样就不需要过滤了。
google了半天,有用win32_serialport的,但是不知道问为啥,有些端口识别不出来。
C# 过滤SerialPort端口的更多相关文章
- tcpdump过滤某个端口
一般我们使用Tcpdump时都是使用: Java代码 tcpdump -i ethx www.2cto.com 下面这条命令就是查看80端口的访问量,进行排序,取前20位 Ja ...
- Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)
catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...
- wireshark常用过滤规则
wireshark常用过滤规则:(Filter中输入过滤规则)1.源ip过滤:ip.src==1.1.1.1 (过滤源ip为1.1.1.1的包) 2.目的ip过滤:ip.d ...
- wireshark常用的过滤命令
我们使用wireshark抓包,却不知道如何分析这些包,也无法从海量的包中提取自己需要的数据,下面简单介绍下wireshark的过滤规则. 过滤源ip.目的ip.在wireshark的过滤规则框Fil ...
- 使用wireshark常用的过滤命令
使用wireshark常用的过滤命令 方法/步骤 过滤源ip.目的ip.在wireshark的过滤规则框Filter中输入过滤条件.如查找目的地址为192.168.101.8的包,ip.dst==19 ...
- 查看端口使用情况(lsof,netstat, kill)
在Mac上查看端口使用情况只能使用lsof(list open file),无法使用 netstat. 查看某个端口是否正在被占用: lsof -i:portno 另外,可以通过: lsof 指令来查 ...
- wireshark抓包的过滤规则
使用wireshark抓包的过滤规则.1.过滤源ip.目的ip.在wireshark的过滤规则框Filter中输入过滤条件.如查找目的地址为192.168.101.8的包,ip.dst==192.16 ...
- Wireshark常用过滤使用方法
过滤源ip.目的ip. 在wireshark的过滤规则框Filter中输入过滤条件.如查找目的地址为192.168.101.8的包,ip.dst==192.168.101.8:查找源地址为ip.src ...
- wireshark的过滤
过滤源ip.目的ip.在wireshark的过滤规则框Filter中输入过滤条件.如查找目的地址为192.168.101.8的包,ip.dst==192.168.101.8:查找源地址为ip.src= ...
随机推荐
- 安装centos mini版,无法联网,用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法
*无法联网的明显表现会有: cannot find a valid baseurl for repo:base/7/x86_64 1.yum install出现 Error: cannot find ...
- Collection Views and Building Custom Layouts-备
UICollectionView的结构回顾 首先回顾一下Collection View的构成,我们能看到的有三个部分: Cells Supplementary Views 追加视图 (类似Header ...
- 解压Taobao手机客户端发现的东西
今天解压了Taobao手机客户端发现了几个.so文件, 其中有两个挺感兴趣的,查了一下,以后去研究下. libBSPatch.so 是用于支持增量更新功能的库文件. libwebp.so 好像是We ...
- 客户端把rsyslog重启,就会发送全部日志 --待研究
客户端: uat-web02:/var/log/nginx# echo "scan-cccc21231">>scan.log uat-web02:/var/log/ng ...
- Linux系统编程(26)——守护进程
Linux系统启动时会启动很多系统服务进程,比如inetd,这些系统服务进程没有控制终端,不能直接和用户交互.其它进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户 ...
- Html5 Canvas Hit Testing
名词解释: Shape : 矢量图形,点线面之类的: Hit Testing : 点击测试: 参考内容: A Gentle Introduction to Making HTML5 Canvas In ...
- 九度oj 1482:玛雅人的密码
题意:输入一个长度为n(2<=n<=13)的字符串(所有字符为'0','1'或'2'),通过交换相邻的两个字符,至少要交换多少次才能处出现字串"2012",输出这个值, ...
- PHP的输出缓冲区
什么是缓冲区?简单而言,缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取.至于为什么要有缓冲区,这是一个很广泛的问题,如果有兴趣,可以在网山找下资料.其实缓冲区最本质的作用就是,协调 ...
- windows使用命令行杀进程
在windows有时使用任务管理器杀进程,一直杀不掉: 这个时候,可以使用命令行: 先使用tasklist 命令查看当前系统中的进程列表,然后针对你要杀的进程使用taskkill命令 如要杀nginx ...
- 带有中文的url和NSString中文的转换
NSString *url = @"http://tw.news.yahoo.com/麵包魂東京吸睛-粉絲包圍導演-061222049.html"; NSLog(@"ur ...