USB Key插入和移除监控
近期在做USB Key插入和移除监控,已经做到了插入和移除USB Key时,程序能够及时感应到。
如下为源代码:
private void Form1_Load(object sender, EventArgs e)
{
//创建查询条件,监控USB Key插入和拔出
string condintion = "TargetInstance ISA 'Win32_USBControllerdevice'";
var qCreate = new WqlEventQuery("__InstanceCreationEvent", TimeSpan.FromSeconds(1), condintion);
var qDelete = new WqlEventQuery("__InstanceDeletionEvent", TimeSpan.FromSeconds(1), condintion);
//创建事件查询的侦听器(ManagementEventWatcher)
var wCreate = new ManagementEventWatcher(qCreate);
var wDelete = new ManagementEventWatcher(qDelete);
//事件注册代码
wCreate.EventArrived += (sender1, e1) =>
{
GetInfo(e1.NewEvent);
string msg = "插入USB Key!"; //+ GetInfo(e1.NewEvent);
this.Write(msg);
};
wDelete.EventArrived += (sender1, e1) =>
{
string msg = "拔出USB Key!"; //+ GetInfo(e1.NewEvent);
this.Write(msg);
};
//异步开始侦听
wCreate.Start();
wDelete.Start();
}
用了招行网银USB key和客户提供的USB key测试,运行结果如下:
2013/11/28 0:51:17 插入USB Key!
2013/11/28 0:51:17 插入USB Key!
2013/11/28 0:51:18 拔出USB Key!
2013/11/28 0:51:18 拔出USB Key!
2013/11/28 0:51:20 插入USB Key!
2013/11/28 0:51:21 拔出USB Key!
2013/11/28 0:51:23 插入USB Key!
2013/11/28 0:51:23 插入USB Key!
2013/11/28 0:51:24 拔出USB Key!
2013/11/28 0:51:24 拔出USB Key!
2013/11/28 0:51:55 插入USB Key!
2013/11/28 0:51:55 插入USB Key!
2013/11/28 0:51:56 拔出USB Key!
2013/11/28 0:51:56 拔出USB Key!
不解的是,为什么我插入或拔出了一次Key后,程序会捕获到两次事件,在此抛砖引玉,望高手不吝赐教!
USB Key插入和移除监控的更多相关文章
- USB OTG插入检测识别
转载请标注原文地址:http://blog.csdn.net/uranus_wm/article/details/9838847 一 USB引脚一般四根线,定义如下: 为支持OTG功能,mini/mi ...
- Linux下基于PAM机制的USB Key的制作
摘自:https://server.zzidc.com/fwqpz/157.html USB Key这个概念最早是由加密锁厂家提出来的,加密锁是用来防止软件盗版的硬件产品,加密锁的概念是使安装在计算机 ...
- 银行应用USB Key身份认证方案
前言:本文为USB Key的厂商SafeNet公司提供的宣传稿件,并不代表本博客作者的观点和看法. 本文的技术解决方案使用的是SafeNet自身的产品,虽然这个产品支持数字签名和PKI体系,可生成并储 ...
- USB Key
随着互联网和电子商务的发展,USB Key作为网络用户身份识别和数据保护的“电子钥匙”,正在被越来越多的用户所认识和使用.本文对USB Key的产生和未来的发展趋势作了一个简单的介绍. 目前市场上见到 ...
- ubuntu下USB口插入USB转TTL查看串口号
首先先要获取权限 sudo su 然后 cd /devls ls可以列出所有的串口号(确保此时USB转TTL已经插在电脑上了) 然后拔掉USB转TTL 在ls一下列出所有的串口设备 对比可以发现,插上 ...
- 使用USB Key(加密狗)实现身份认证
首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备! 这里我使用的坚石诚信公司的ET99产品 公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插 ...
- JS中的鼠标移入移除监控操作
有些时候我们需要通过页面来监控用户的行为,包括鼠标操作键盘操作,本文章介绍的是鼠标的操作监控: <script> window.onload = function(){ var oDiv ...
- Flutter: AnimatedList 一个滚动容器,可在插入或移除项目时为其设置动画
Flutter Widget of the Week import 'dart:math'; import 'package:flutter/material.dart'; void main() = ...
- 1.6 USB的插入检测机制
随机推荐
- iOS 中UI控件的各种对齐方式总结
1.textAligment : 文字的水平方向的对齐方式 取值 NSTextAlignmentLeft = 0, // 左对齐 NSTextAlignmentCenter = ...
- phpmailer使用gmail SMTP的方法
终于能够通过phpmailer使用gmail账号发送邮件了phpmailer(现在的版本是1.73)是一个很好用的工具,可以很方便的使用php语言发送邮件,支持smtp及验证,我们一直都用它. 但是, ...
- open/close table on mysql
http://hidba.org/?p=170 我们知道mysql是一个支持多线程的数据库,尤其在innodb存储引擎出现后,对mysql的事务,并发,锁支持得到了极大提高.在高并发的访问的应用场 ...
- .PIG File
.PIG File File extension: PIG File type: Texture File The PIG file type is primarily associated with ...
- 在MyEclipse中如何去掉JS或jsp语法错误提示!
在MyEclipse中如何去掉JS或jsp语法错误提示! 关于在 MyEclipse 上 WEB 工程里面的 JS/JSP 经常会有语法错误提示,这是由于 MyEclipse 对其语法要求相当严格所造 ...
- 【转载】NIO客户端序列图
步骤一:打开SocketChannel,绑定客户端本地地址(可选,默认系统会随机分配一个可用的本地地址),示例代码如下: SocketChannel clientChannel = SocketCha ...
- 利用php给图片添加文字水印--面向对象与面向过程俩种方法的实现
1: 面向过程的编写方法 //指定图片路径 $src = '001.png'; //获取图片信息 $info = getimagesize($src); //获取图片扩展名 $type = image ...
- java strtus2 DynamicMethodInvocation配置(二)
前面一章讲了下动态配置的方法.那样,能够直接动态的调用action里面的方法, 这里展示一种配置更少,更简洁的一种方法. 在前一章其他不变的情况下,改变配置文件 <package name=&q ...
- eclipse修改SVN下载的项目“>”变成“*”
遇到过这样的问题,可能是因为下载的eclipse 的版本国过于高的原因. 一张图说明就行了. 将红色的地方打上勾就行了.
- 几种工具反编译被编译好的DLL文件
我们平时在工作中经常会遇到一些已经被编译后的DLL,而且更加麻烦是没有源代码可以进行修改,只能针对这个DLL的文件进行修改才能得到我们想要的结果:本文将通过一个实例来演示如果完成一个简单的修改;我们将 ...