C#检测是否有u盘插入的方法

作者:gogo 时间:2023-11-19 13:11:00 

本文实例讲述了C#检测是否有u盘插入的方法。分享给大家供大家参考。具体如下:

该C#代码可监控是否有u盘插入,同时可以监控其它驱动器的变化


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices
;
namespace WindowsApplication16
{
public partial class Form1 : Form
{
 public Form1()
 {
  InitializeComponent();
 }
 [StructLayout(LayoutKind.Sequential)]
 public struct DEV_BROADCAST_VOLUME
 {
  public int dbcv_size;
  public int dbcv_devicetype;
  public int dbcv_reserved;
  public int dbcv_unitmask;
 }
 protected override void WndProc(ref Message m)
 {
  // 发生设备变动
  const int WM_DEVICECHANGE = 0x0219;
  // 系统检测到一个新设备
  const int DBT_DEVICEARRIVAL = 0x8000;
  // 系统完成移除一个设备
  const int DBT_DEVICEREMOVECOMPLETE = 0x8001;
  // 逻辑卷标
  const int DBT_DEVTYP_VOLUME = 0x00000002;
  switch (m.Msg)
  {
   case WM_DEVICECHANGE:
    switch (m.WParam.ToInt32())
    {
     case DBT_DEVICEARRIVAL:
      int devType = Marshal.ReadInt32(m.LParam, 4);
      if (devType == DBT_DEVTYP_VOLUME)
      {
       DEV_BROADCAST_VOLUME vol;
       vol = (DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(
        m.LParam, typeof(DEV_BROADCAST_VOLUME));
       MessageBox.Show(vol.dbcv_unitmask.ToString("x"));
      }
      break;
     case DBT_DEVICEREMOVECOMPLETE:
      MessageBox.Show("Removal");
      break;
    }
    break;
  }
  base.WndProc(ref m);
 }
}
}

希望本文所述对大家的C#程序设计有所帮助。

标签:C#,检测,u盘
0
投稿

猜你喜欢

  • C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序

    2023-12-27 04:47:01
  • SpringBoot中Shiro缓存使用Redis、Ehcache的方法

    2023-10-04 17:34:59
  • java实现图片分割指定大小

    2021-07-02 16:56:34
  • Java 实战项目锤炼之网上图书馆管理系统的实现流程

    2021-10-09 02:05:34
  • spring mvc实现文件上传与下载功能

    2022-05-13 09:50:14
  • Java线程池的几种实现方法和区别介绍

    2023-12-12 12:46:04
  • Java 创建两个线程模拟对话并交替输出实现解析

    2022-01-10 02:37:02
  • 带大家认识Java语法之泛型与通配符

    2021-06-04 06:14:46
  • 详解Java虚拟机管理的内存运行时数据区域

    2023-12-04 01:32:35
  • TextBox获取输入焦点时自动全选的实现方法

    2022-01-01 02:22:49
  • Android实现简单的自定义ViewGroup流式布局

    2022-03-16 10:21:23
  • 使用Spring boot + jQuery上传文件(kotlin)功能实例详解

    2022-09-03 14:12:21
  • SpringBoot多数据源切换实现代码(Mybaitis)

    2021-11-07 11:15:50
  • 解决grails服务端口冲突的办法(grails修改端口号)

    2023-09-12 01:00:03
  • Android Studio 报错failed to create jvm error code -4的解决方法

    2023-01-22 03:13:49
  • 详解Android使GridView横向水平滚动的实现方式

    2023-01-04 16:59:19
  • Android自定义View Flyme6的Viewpager指示器

    2022-02-10 19:02:05
  • 关于Jedis的用法以及Jedis使用Redis事务

    2023-06-28 07:22:56
  • 详解Java获取环境变量及系统属性的方法

    2021-08-23 16:58:03
  • Flutter实现底部导航栏创建详解

    2023-09-29 10:01:04
  • asp之家 软件编程 m.aspxhome.com