做工控的,经常要用C#写上位机,这时,USB的驱动是一个无法避免的问题,其中,如果要做得好,必须得处理检测USB是否插入的问题。

目前是用一个 DispatcherTimer定时器 也定时检测是否插入,至于为什么要用这个定时器,是因为WPF中,这和UI处于同一个线程,无需处理跨线程的问题。

定时检测的代码是从USB的驱动代码里抠出来的,因为USB驱动的第一步就是搜索USB设备。后面才是打开USB等一系列操作。所以,把这个搜索的代码复制出来,单独成一个函数,就是检测USB是否插上的代码了。

这次的是HID USB,搜索HID USB,检测USB是否插入的代码如下:

        public bool IsPlusUsb(){USBHID usbHID_plus = new USBHID();string DstDev = "";System.Diagnostics.Debug.Print("搜索到的USB HID 设备如下; ");foreach (string device in usbHID_plus.GetDeviceList()){System.Diagnostics.Debug.Print(device);if (device.IndexOf("1111") >= 0 && device.IndexOf("2222") >= 0){DstDev = device;}}System.Diagnostics.Debug.Print("");if (DstDev.Length > 0){System.Diagnostics.Debug.Print("目标USB-HID设备为:");System.Diagnostics.Debug.Print(DstDev);}else{System.Diagnostics.Debug.Print("错误:找不到目标USB-HID设备");//while (true) { }return false;}return true;}

最终效果如下:

C# 检测USB是否插入相关推荐

  1. Android 无线调试+检测usb外部设备插入并打开app

    最近在做一个需要连接usb外设的项目,主要记录一下中间碰到的两个问题. 因为项目需要所以中间要在插入usb外设的情况下进行调试,但是手机只有一个连接口,在没办法的情况下只能想到用无线调试的方法 实现插 ...

  2. linux下查看usb插拔日志,Linux:如何检测usb键盘是否已插入和拔出

    如果HAL守护进程正在运行(这在大多数现代linux桌面上都是如此),那么您可以监听它的DBus信号.下面是一个如何检测USB鼠标是否已插入的示例(我手头没有USB键盘):import gobject ...

  3. USB OTG插入检测识别

    一 USB引脚一般四根线,定义如下: 为支持OTG功能,mini/micro usb接口扩展了一个ID引脚(第4脚) A设备端ID脚接地,则初始状态为Host,例如PC和支持OTG设备做主设备时 B设 ...

  4. Android P检测USB插入拔出消息并基于libaums实现读取USB文件

    Android设备中检测USB插入消息,并且从USB中读取文件. 一.导入libaums包 libaums开源项目地址:https://github.com/magnusja/libaums buil ...

  5. 监控USB设备插入/拔出写法2

    //检测设备增加移除相关消息 LRESULT CMiniHidTestDlg::OnMyDeviceChange(WPARAM wParam, LPARAM lParam) {CString pDev ...

  6. Linux下自动检测USB热插拔

    做嵌入式开发,尤其在网关.路由器或者其他支持USB设备的终端上,为了提高用户体验,我们常常需要支持自动识别并挂载USB设备功能.某些应用程序,在使用USB设备的过程中,也希望能够侦测到USB断开事件, ...

  7. USB HID学习:MFC检测USB拔插事件

    MFC具备检测设备的消息,但需要手动添加.针对USB设备,需要注册对应的GUID方可.本文对此进行简单记录. 本省略对MFC机制的描述,仅描述主要的模块代码. 一.步骤 Dbt.h头文件引用 在std ...

  8. QT在Windows下检测USB设备热拔插的思路

    一.问题描述: 使用QT开发视频会议时需要实现实时检测USB摄像头/麦克风拔插的功能,这里主要涉及到对一些Windows API的了解以及windows系统的设备管理识别不同种设备时的原理,在实现过程 ...

  9. 使用libusb检测USB设备插拔状态

    libusb是一个提供USB设备访问的跨平台用户模式程序库.该项目最新网址:http://www.libusb.info, 支持主流的操作系统:Linux.Mac OS X. Windows.Open ...

  10. android检查usb广播,Android 检测USB 音频设备

    1.广播检测USB 音频设备 注册广播: "android.hardware.usb.action.USB_DEVICE_ATTACHED"; "android.hard ...

最新文章

  1. OpenCV卡尔曼滤波介绍与代码演示
  2. Cocos2d之Action类详解
  3. StringUtils.join的用法
  4. mockito_Mockito 101
  5. foxpro被什么软件取代_MATLAB可以被取代么?可以被什么软件取代?
  6. python项目部署nginx_详解使用Nginx和uWSGI配置Python的web项目的方法
  7. 二叉树创建及遍历算法(递归及非递归)(转)
  8. 宝塔linux忘记密码,宝塔忘记登录入口了怎么解决 宝塔面板密码忘记了怎么办
  9. HDU 1231.最大连续子序列-dp+位置标记
  10. 【ElasticSearch】如何使用 ElasticSearch 搜索单词的一部分 模糊搜索 正则匹配 前缀匹配
  11. Python把类当做字典来访问
  12. hash签名 java_java开发区块链只需150行代码
  13. android 之手机拨号器,以及短信发送器的简单实现
  14. Java实现JPBC密码库的实验
  15. 火焰之纹章的各种计算
  16. java毕业生设计药品管理系统演示录像2021计算机源码+系统+mysql+调试部署+lw
  17. Mac中Word 2016导出PDF附带书签目录结构
  18. 天津大学计算机专硕_天津大学计算机技术专硕考研参考书
  19. 推送系统从0到1(八):个性化精准推送的实现
  20. springboot项目:老年教育学习系统fte91(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. updating mysql.pid_MySQL启动报错-The server quit without updating PID file[FAILED]mysql/mysql.pid)...
  2. 解决pychram:卡在Updating Python Interpreter
  3. 联想电脑u盘安装Linux,如何使用u盘安装linux系统
  4. 央央家政解读:育儿嫂服务内容和标准
  5. ROS之launch文件解析
  6. CentOS 7超详细安装与网络配置
  7. Ubuntu 16.04下使用Wine安装Windows版的微信(不太完美)
  8. 手机电源管理芯片一般在哪
  9. 数据结构与算法课设:基于交通路线的规划系统
  10. Android编译内核并刷入