C实现USB插拔检测
-Begin- 前言
最近有学员咨询,如何实现串口设备的插拔检测。
传统的方式是不断地通过SerialPort.GetPortNames方法获取所有串口,判断是否有变化。
但是更合适的方式,应该是通过Windows消息来实现。 代码 #region 检测USB插拔 public const int WM_DEVICECHANGE = 0x219; public const int DBT_DEVICEARRIVAL = 0x8000; public const int DBT_CONFIGCHANGECANCELED = 0x0019; public const int DBT_CONFIGCHANGED = 0x0018; public const int DBT_CUSTOMEVENT = 0x8006; public const int DBT_DEVICEQUERYREMOVE = 0x8001; public const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002; public const int DBT_DEVICEREMOVECOMPLETE = 0x8004; public const int DBT_DEVICEREMOVEPENDING = 0x8003; public const int DBT_DEVICETYPESPECIFIC = 0x8005; public const int DBT_DEVNODES_CHANGED = 0x0007; public const int DBT_QUERYCHANGECONFIG = 0x0017; public const int DBT_USERDEFINED = 0xFFFF; protected override void WndProc(ref Message m) { try { if (m.Msg == WM_DEVICECHANGE) { switch (m.WParam.ToInt32()) { case WM_DEVICECHANGE: break; case DBT_DEVICEARRIVAL: MessageBox.Show("判断检测USB插入电脑"); DriveInfo[] s = DriveInfo.GetDrives(); foreach (DriveInfo drive in s) { if (drive.DriveType == DriveType.Removable) { break; } } break; case DBT_CONFIGCHANGECANCELED: break; case DBT_CONFIGCHANGED: break; case DBT_CUSTOMEVENT: break; case DBT_DEVICEQUERYREMOVE: break; case DBT_DEVICEQUERYREMOVEFAILED: break; case DBT_DEVICEREMOVECOMPLETE: MessageBox.Show(""判断检测USB拔出电脑"); break; case DBT_DEVICEREMOVEPENDING: break; case DBT_DEVICETYPESPECIFIC: break; case DBT_DEVNODES_CHANGED: break; case DBT_QUERYCHANGECONFIG: break; case DBT_USERDEFINED: break; default: break; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } base.WndProc(ref m); } #endregion
-END-
华为5G被抹黑,为何和美国GPS竞争的北斗没事?本文原创,禁止抄袭,违者必究!科技无国界?还有人相信这句话吗?当某个企业的某项技术在某个领域呈现赶超趋势时,所谓的科技无国界就不攻自破了。比如当华为5G强势崛起,美国又不能通过专利
浅谈詹姆斯韦伯太空望远镜对恒星及行星如何形成的冷静看法日前,詹姆斯韦伯太空望远镜项目高级副首席科学家NASA行星科学项目副科学家JonathanGardner刊文介绍了詹姆斯韦伯太空望远镜工作的最新进展。文章内容如下NASA詹姆斯韦伯
你手机里最喜欢最常用最依赖的APP是什么,为什么?人的喜好不是一成不变的,要随时根据自身的需要做出对的选择就拿我来说吧以前我最喜欢的是各种游戏APP因为当时我对生活没多大追求,躺着睡觉每月也能赚三五万的。以后我最常用的可能就是悟空
孩子在家上网课,想购买一台打印机,哪个品牌质量好?打印机还是选惠普的。我在公司上班10几年,用过了许多品牌的打印机,三星,联想,惠普等,最终我觉得还是惠普打印机皮实,耐用。现在要买的话,建议买带无线打印的,手机连接打印机直接可以打
每日晨报4月8日加密行业隔夜短消息大汇集俄罗斯继续禁止加密货币支付,可探讨加密挖矿事宜美财长加密行业与传统金融同等监管斯洛文尼亚征收5的统一加密货币税美国终极格斗冠军赛(UFC)将向拳击手提供比特币奖金万事达卡将孵化NF
V神撰文为比特币最大主义辩护!BitMEX创始人ETH年底超1万美元以太坊共同创办人VitalikButerin(V神)在愚人节当日撰写题为捍卫比特币最大主义长文,为BitcoinMaximalism辩护。比特币最大主义者一般被描述为,广泛抵制比特
科技赋能服务先行光大银行打造交易银行数字化服务能力记者黄敏投资快报记者了解到,光大银行践行以客户为中心的服务理念,以客户视角重塑金融产品和服务流程,以多向前一公里多向外一公里的思维将交易银行服务与企业经营管理紧密结合,不断丰富交易
数学货币备受青睐近年来数字货币备受青睐,一些数字货币交易平台也得到了广大投资爱好者的广泛关注,数字货币交易所便是其中的一个。作为虚拟货币领域的一员,数字货币交易所支持多种交易模式,兼具稳定性和安全
蓝色光标上线数字藏品发行平台中证网讯(记者董添)4月7日,蓝色光标旗下首个数字藏品发行平台MEME上线。同时,蓝色光标指出,公司还将成立BlueX区块链实验室与UDA数字艺术家联盟。MEME合伙人刘易林指出,
2022年爆发前最便宜的10种加密货币如果您是寻找最便宜的加密货币的投资者之一,那么这里就是您的清单美元硬币当前价格0。9997美元美元硬币的风险回报率使其成为最具吸引力的加密货币之一。投资者可以承担更少的风险,但仍能
贵州连续五年保持百亿规模投资加码数字新基建新华网贵阳4月9日电(记者向定杰)作为我国首个大数据综合试验区,为促进大数据行业又好又快发展,贵州持续保持投资力度。根据贵州省大数据发展管理局公布的数据,从2018年以来,全省在大
车主聊e2购车原因看对眼,用车体验很满意e2是比亚迪e系列下一款跨界电动车,因车型时尚,配置丰富等原因,新车一上市便吸引了众多车友关注。颜值打动人了,那么体验感如何呢?下面来看车主怎么说的提了新车,一直没来得及跟大家分享
这款电动小车不仅安全,还经济实用疫情过后,很多人买车的消费理念变得更理性,也更务实。在很多用户心中,产品的价格维护成本和品质性能等同等重要。简单来说就是好开好用又超值的车才是王道。那么怎样才叫好开好用又超值呢,今
全方位打量红黑双色车身的e2配置真的多现在比亚迪汽车在车型设计上已经越来越时尚了,不管是旗下王朝系列还是e系列的新车,真的款款都有特点,让人挑不出毛病。就拿我们今天要说的这款比亚迪e2吧,高配的双色车身特别出众,不仅时
电动车续航难?E2了解一下新能源汽车续航短,跑不远?新能源汽车跑不远的网络传闻不绝于耳。诸如标题,新能源汽车跑不远,半路车主只能哭了等等。一般每个车主一般都是在市区开车,自然不会有什么续航的担忧。在省内都是
解封第一件事,把e2洗干净听说有人车都长草了?不行,比亚迪e2不允许出现这种事情!小张赶紧去坚持了一下他的车,在解封第一日就洗了个澡,出水芙蓉的比亚迪e2,来看看!今天上午7点钟的时候接到小区物管的通知,小
e1车主选车就要选择适合自己的从体验来看,选车就要选择适合自己的,不要看什么表面宣传信息,一定要上手。毕竟适合自己的才会在后期用车生活中给你更多惊喜,而不是惊吓。对于选车我想很多小伙伴都和我一样,不知该如何下手
真香警告,提爱车红黑e2后的喜悦买车之前很多朋友都会考虑自己的购车预算,有些车友觉得十万左右的预算买车能有什么惊喜,只能买到一个普普通通的代步工具而已,甚至觉得买电动车的人都仅仅是为了解决限行限号问题,但比亚迪e
百公里电耗9。2KWh,这款电动车创能耗新高电动车的优势之一即是它的能耗低,相对燃油车烧油,电动车耗电要节省得多。最近一位比亚迪e2车主分享自己爱车百公里电耗仅9。2KWh,算下来每公里不到6分钱,真正刷新了我对电动车的认知
比亚迪e2车主有话说这是一辆宝藏车比亚迪率先在国内推出纯电动汽车平台e平台,并且进行开放共享。比亚迪e2虽然是A级电动车,但是e2通过高度集成化模块化的平台优势,让整车更小的同时具备更大的空间更高的功率密度以及轻量
揭秘宝藏车的真实力,比亚迪e2车主现身说法操控性对于家用车来说,无非就是精准的操控性适当的油门响应和恰到好处的推背感。这不是燃油车才有的专属性能,电动车也一样可以有,既能做到专业级别的操控,又兼顾节能环保!比亚迪e2就兼具
进军20万SUV市场C11创新技术强势起跑随着我国对新能源汽车基础设施的建设水平不断提升,消费者对购买新能源车型的热情也越来越高涨。和传统燃油车相比,新能源汽车在经济性上的优势非常明显,其使用便利性也越来越接近燃油车。但是