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后,程序会捕获到两次事件,在此抛砖引玉,望高手不吝赐教!

 

 

转载于:https://www.cnblogs.com/moonlight-zjb/p/3446903.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值