C# 检测USB是否插入
做工控的,经常要用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是否插入相关推荐
- Android 无线调试+检测usb外部设备插入并打开app
最近在做一个需要连接usb外设的项目,主要记录一下中间碰到的两个问题. 因为项目需要所以中间要在插入usb外设的情况下进行调试,但是手机只有一个连接口,在没办法的情况下只能想到用无线调试的方法 实现插 ...
- linux下查看usb插拔日志,Linux:如何检测usb键盘是否已插入和拔出
如果HAL守护进程正在运行(这在大多数现代linux桌面上都是如此),那么您可以监听它的DBus信号.下面是一个如何检测USB鼠标是否已插入的示例(我手头没有USB键盘):import gobject ...
- USB OTG插入检测识别
一 USB引脚一般四根线,定义如下: 为支持OTG功能,mini/micro usb接口扩展了一个ID引脚(第4脚) A设备端ID脚接地,则初始状态为Host,例如PC和支持OTG设备做主设备时 B设 ...
- Android P检测USB插入拔出消息并基于libaums实现读取USB文件
Android设备中检测USB插入消息,并且从USB中读取文件. 一.导入libaums包 libaums开源项目地址:https://github.com/magnusja/libaums buil ...
- 监控USB设备插入/拔出写法2
//检测设备增加移除相关消息 LRESULT CMiniHidTestDlg::OnMyDeviceChange(WPARAM wParam, LPARAM lParam) {CString pDev ...
- Linux下自动检测USB热插拔
做嵌入式开发,尤其在网关.路由器或者其他支持USB设备的终端上,为了提高用户体验,我们常常需要支持自动识别并挂载USB设备功能.某些应用程序,在使用USB设备的过程中,也希望能够侦测到USB断开事件, ...
- USB HID学习:MFC检测USB拔插事件
MFC具备检测设备的消息,但需要手动添加.针对USB设备,需要注册对应的GUID方可.本文对此进行简单记录. 本省略对MFC机制的描述,仅描述主要的模块代码. 一.步骤 Dbt.h头文件引用 在std ...
- QT在Windows下检测USB设备热拔插的思路
一.问题描述: 使用QT开发视频会议时需要实现实时检测USB摄像头/麦克风拔插的功能,这里主要涉及到对一些Windows API的了解以及windows系统的设备管理识别不同种设备时的原理,在实现过程 ...
- 使用libusb检测USB设备插拔状态
libusb是一个提供USB设备访问的跨平台用户模式程序库.该项目最新网址:http://www.libusb.info, 支持主流的操作系统:Linux.Mac OS X. Windows.Open ...
- android检查usb广播,Android 检测USB 音频设备
1.广播检测USB 音频设备 注册广播: "android.hardware.usb.action.USB_DEVICE_ATTACHED"; "android.hard ...
最新文章
- OpenCV卡尔曼滤波介绍与代码演示
- Cocos2d之Action类详解
- StringUtils.join的用法
- mockito_Mockito 101
- foxpro被什么软件取代_MATLAB可以被取代么?可以被什么软件取代?
- python项目部署nginx_详解使用Nginx和uWSGI配置Python的web项目的方法
- 二叉树创建及遍历算法(递归及非递归)(转)
- 宝塔linux忘记密码,宝塔忘记登录入口了怎么解决 宝塔面板密码忘记了怎么办
- HDU 1231.最大连续子序列-dp+位置标记
- 【ElasticSearch】如何使用 ElasticSearch 搜索单词的一部分 模糊搜索 正则匹配 前缀匹配
- Python把类当做字典来访问
- hash签名 java_java开发区块链只需150行代码
- android 之手机拨号器,以及短信发送器的简单实现
- Java实现JPBC密码库的实验
- 火焰之纹章的各种计算
- java毕业生设计药品管理系统演示录像2021计算机源码+系统+mysql+调试部署+lw
- Mac中Word 2016导出PDF附带书签目录结构
- 天津大学计算机专硕_天津大学计算机技术专硕考研参考书
- 推送系统从0到1(八):个性化精准推送的实现
- springboot项目:老年教育学习系统fte91(java+VUE+Mybatis+Maven+Mysql)
热门文章
- updating mysql.pid_MySQL启动报错-The server quit without updating PID file[FAILED]mysql/mysql.pid)...
- 解决pychram:卡在Updating Python Interpreter
- 联想电脑u盘安装Linux,如何使用u盘安装linux系统
- 央央家政解读:育儿嫂服务内容和标准
- ROS之launch文件解析
- CentOS 7超详细安装与网络配置
- Ubuntu 16.04下使用Wine安装Windows版的微信(不太完美)
- 手机电源管理芯片一般在哪
- 数据结构与算法课设:基于交通路线的规划系统
- Android编译内核并刷入