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盘
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
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
![](https://img.aspxhome.com/file/2023/7/121957_0s.png)
spring mvc实现文件上传与下载功能
2022-05-13 09:50:14
Java线程池的几种实现方法和区别介绍
2023-12-12 12:46:04
Java 创建两个线程模拟对话并交替输出实现解析
2022-01-10 02:37:02
![](https://img.aspxhome.com/file/2023/3/108473_0s.png)
带大家认识Java语法之泛型与通配符
2021-06-04 06:14:46
![](https://img.aspxhome.com/file/2023/4/67494_0s.png)
详解Java虚拟机管理的内存运行时数据区域
2023-12-04 01:32:35
![](https://img.aspxhome.com/file/2023/4/81334_0s.png)
TextBox获取输入焦点时自动全选的实现方法
2022-01-01 02:22:49
Android实现简单的自定义ViewGroup流式布局
2022-03-16 10:21:23
![](https://img.aspxhome.com/file/2023/2/137122_0s.png)
使用Spring boot + jQuery上传文件(kotlin)功能实例详解
2022-09-03 14:12:21
![](https://img.aspxhome.com/file/2023/3/77963_0s.png)
SpringBoot多数据源切换实现代码(Mybaitis)
2021-11-07 11:15:50
![](https://img.aspxhome.com/file/2023/6/92716_0s.png)
解决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
![](https://img.aspxhome.com/file/2023/1/137251_0s.gif)
Android自定义View Flyme6的Viewpager指示器
2022-02-10 19:02:05
![](https://img.aspxhome.com/file/2023/6/138206_0s.gif)
关于Jedis的用法以及Jedis使用Redis事务
2023-06-28 07:22:56
![](https://img.aspxhome.com/file/2023/6/113476_0s.jpg)
详解Java获取环境变量及系统属性的方法
2021-08-23 16:58:03
Flutter实现底部导航栏创建详解
2023-09-29 10:01:04
![](https://img.aspxhome.com/file/2023/3/126693_0s.jpg)