C#获取串口列表实现实时监控串口_C#教程

常用的两种方法

方法一:

using Microsoft.Win32; 

RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware//DeviceMap//SerialComm");
if (keyCom != null)
{
 string[] sSubKeys = keyCom.GetValueNames();
 foreach (string sName in sSubKeys)
 {
  string sValue = (string)keyCom.GetValue(sName);
  this.textBox1.Text = this.textBox1.Text + sValue + "/r/n";
 }
} 

方法二:

using System.IO.Ports; 

foreach (string vPortName in SerialPort.GetPortNames())
{
 this.textBox2.Text = this.textBox2.Text + vPortName + "/r/n";
}

分享一个已经封装好的API,实现效果如下:

代码如下:

/// <summary>
/// 枚举win32 api
/// </summary>
public enum HardwareEnum
{
 // 硬件
 Win32_Processor, // CPU 处理器
 Win32_PhysicalMemory, // 物理内存条
 Win32_Keyboard, // 键盘
 Win32_PointingDevice, // 点输入设备,包括鼠标。
 Win32_FloppyDrive, // 软盘驱动器
 Win32_DiskDrive, // 硬盘驱动器
 Win32_CDROMDrive, // 光盘驱动器
 Win32_BaseBoard, // 主板
 Win32_BIOS, // BIOS 芯片
 Win32_ParallelPort, // 并口
 Win32_SerialPort, // 串口
 Win32_SerialPortConfiguration, // 串口配置
 Win32_SoundDevice, // 多媒体设置,一般指声卡。
 Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)
 Win32_USBController, // USB 控制器
 Win32_NetworkAdapter, // 网络适配器
 Win32_NetworkAdapterConfiguration, // 网络适配器设置
 Win32_Printer, // 打印机
 Win32_PrinterConfiguration, // 打印机设置
 Win32_PrintJob, // 打印机任务
 Win32_TCPIPPrinterPort, // 打印机端口
 Win32_POTSModem, // MODEM
 Win32_POTSModemToSerialPort, // MODEM 端口
 Win32_DesktopMonitor, // 显示器
 Win32_DisplayConfiguration, // 显卡
 Win32_DisplayControllerConfiguration, // 显卡设置
 Win32_VideoController, // 显卡细节。
 Win32_VideoSettings, // 显卡支持的显示模式。

 // 操作系统
 Win32_TimeZone, // 时区
 Win32_SystemDriver, // 驱动程序
 Win32_DiskPartition, // 磁盘分区
 Win32_LogicalDisk, // 逻辑磁盘
 Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。
 Win32_LogicalMemoryConfiguration, // 逻辑内存配置
 Win32_PageFile, // 系统页文件信息
 Win32_PageFileSetting, // 页文件设置
 Win32_BootConfiguration, // 系统启动配置
 Win32_ComputerSystem, // 计算机信息简要
 Win32_OperatingSystem, // 操作系统信息
 Win32_StartupCommand, // 系统自动启动程序
 Win32_Service, // 系统安装的服务
 Win32_Group, // 系统管理组
 Win32_GroupUser, // 系统组帐号
 Win32_UserAccount, // 用户帐号
 Win32_Process, // 系统进程
 Win32_Thread, // 系统线程
 Win32_Share, // 共享
 Win32_NetworkClient, // 已安装的网络客户端
 Win32_NetworkProtocol, // 已安装的网络协议
 Win32_PnPEntity,//all device
}
/// <summary>
/// WMI取硬件信息
/// </summary>
/// <param name="hardType"></param>
/// <param name="propKey"></param>
/// <returns></returns>
public static string[] MulGetHardwareInfo(HardwareEnum hardType, string propKey)
{

 List<string> strs = new List<string>();
 try
 {
  using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + hardType))
  {
   var hardInfos = searcher.Get();
   foreach (var hardInfo in hardInfos)
   {
    if (hardInfo.Properties[propKey].Value.ToString().Contains("COM"))
    {
     strs.Add(hardInfo.Properties[propKey].Value.ToString());
    }

   }
   searcher.Dispose();
  }
  return strs.ToArray();
 }
 catch
 {
  return null;
 }
 finally
 { strs = null; }
}
//通过WMI获取COM端口
string[] ss = MulGetHardwareInfo(HardwareEnum.Win32_PnPEntity, "Name");

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c#
串口
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-09-20 11:44:55

C#获取串口列表实现实时监控串口_C#教程的相关文章

Android(Linux)实时监控串口数据

    之前在做WinCE车载方案时,曾做过一个小工具TraceMonitor,用于显示WinCE系统上应用程序的调试信息,特别是在实车调试时,用于监控和显示CAN盒与主机之间的串口数据.因为需要抢占市场先机,经常在新车上市前,就得配合CAN解码盒厂商同步调试车机端软件.这时候,TraceMonitor就可能派上大用场.遇到说不清是哪一边的问题时,抓数据一看,就清清楚楚了.有时终端客户的机器出现了原车功能异常的问题,也可以直接运行该工具,实时抓取串口数据提供给我们以分析问题原因.不过该工具需要业

详解C#获取特定进程CPU和内存使用率_C#教程

首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetCurrentProcess()方法来获取当前程序所对应的进程对象.当有了进程对象后,可以通过进程对象名称来创建PerformanceCounter类型对象,通过设定PerformanceCounter构造函数的参数实现获取特定进程的CPU和内存使用情况. 具体实例代码如下: 首先是获取本机中所有进程对象,分别输出某一时刻各个进程的内存使用情况: using

C# 获取打印机列表以及串口

C# 获取打印机列表以及默认打印机.串口列表.   /// <summary> /// 获取本地已安装的打印机 /// </summary> /// <returns></returns> public string GetPrinter() { string strList = ""; System.Drawing.Printing.PrinterSettings.StringCollection PrinterList = Syste

循环发送-C#实时读取串口数据的问题

问题描述 C#实时读取串口数据的问题 假设有7条命令,向串口发送命令,待数据接收完成后触发下一条命令的发送,就这样循环一直发送.问题是:向串口发送命令后,我该怎样判断数据接收完成,从而发送下一条命令 解决方案 你的下位机是单工的还是双工异或半双工,若是单工的话,本来就遵守一发一收的.

感谢帮忙!-VC串口数据处理绘制实时波形

问题描述 VC串口数据处理绘制实时波形 MSCOMM控件编写串口接收,settings"19200,n,8,1" 接收到数据块:35 2e b7 36 8d 0a 53 d4 ac 4e d4 ac 2d 30 30 30(不断重复),我改怎么取需要的数据?! 附注:(字符接收)5??j S?N??-0005.69? S??N??-0005.69? S??N??-0005.69? S??N??-0005.69? S??N??-0005.69? S??N??-0005.69? S??N?

javascript实现点击商品列表checkbox实时统计金额的方法_javascript技巧

本文实例讲述了javascript实现点击商品列表checkbox实时统计金额的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999

C#开发串口总结,并提炼串口辅助类到公用类库中

开发C#相关的项目有很多年了,一直没有接触串口的开发,近期由于工作的需要,需要了解熟悉对硬件串口的开发,通过对串口的深入了解,串口也不再是什么神秘的东西,利用SerailPort组件,对串口的各种操作也非常的方便,由于本人总是喜欢把一些常用的东西封装成可供重复利用的类库,因此,阅百家代码,提炼总结优化,把对串口的操作封装成一个公用的类库,应付日常的串口编程开发,也算是工作的一个阶段性总结吧. 先上图,了解串口的一些基本的东西,并逐步介绍相关的知识.   微软在 .NET FrameWork2.0

android 代码怎么实时监控连接当前wifi热点的设备的连接或断开事件?

问题描述 android 代码怎么实时监控连接当前wifi热点的设备的连接或断开事件? 如题,手机A开了热点,手机B打开Wifi连接上了A.那么当B关闭Wifi按钮时,A怎么实时感知到.有没有实现的代码.方法.求大神们解救哦哦!!!!! 解决方案 // 当网络变化的时候系统会发出一个广播 Broadcast,只要在程序中注册一个广播接收器 BroadcastReceiver,并在 IntentFilter 中添加相应的过滤,这样一旦网络有变化,程序就能监听到 public static fina

AJAX + SVG 实现实时监控图表

ajax|监控|图表 AJAX 已经有很多文章介绍它的原理及其应用了.但是遗憾的是现在并没有很多结合实际项目应用.本文结合实际项目中的应用来讲述利用 AJAX 和SVG 技术如何创建各种激动人心的功能,并附带可以运行的例子和源代码. 本文需要一定的 AJAX,SVG 知识和应用经验.当然它们都可以在 ibm.com/developerworks/cn 上找到. 个人对于 AJAX 应用的建议是如果传统的 MVC 能够满足的应用,没有必要使用AJAX来代替,因为这里 AJAX 唯一能带来的好处只是