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

  • 相关阅读:
    3090显卡(CUDA11.1)安装Pytorch
    ros环境搭建
    github设置仓库可见性 私人仓库设置他人协作/可见
    安全可靠国产系统下的应用怎么搭建?
    燕山大学操作系统课程设计计划书
    flink 1.9.0 编译:flink-fs-hadoop-shaded 找不到
    产品经理面试——简历填写
    什么是可串行化MVCC
    fatal: early EOF fatal: index-pack failed
    Maven 初学+http://mvnrepository.com/
  • 原文地址:https://www.cnblogs.com/moonlight-zjb/p/3446903.html
Copyright © 2020-2023  润新知