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

 更新时间:2015年04月25日 17:32:51   作者:gogo  
这篇文章主要介绍了C#检测是否有u盘插入的方法,涉及C#操作硬件的相关技巧,需要的朋友可以参考下

本文实例讲述了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#实现简单加减乘除计算器

    C#实现简单加减乘除计算器

    这篇文章主要为大家详细介绍了C#实现简单加减乘除计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • C#使用LOCK实现线程同步

    C#使用LOCK实现线程同步

    这篇文章介绍了C#使用LOCK实现线程同步的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#使用foreach遍历哈希表(hashtable)的方法

    C#使用foreach遍历哈希表(hashtable)的方法

    这篇文章主要介绍了C#使用foreach遍历哈希表(hashtable)的方法,是C#中foreach语句遍历散列表的典型应用,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Winform使用FTP实现自动更新

    Winform使用FTP实现自动更新

    这篇文章主要为大家详细介绍了Winform使用FTP实现自动更新,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • WPF实现轮播图效果(图片、视屏)

    WPF实现轮播图效果(图片、视屏)

    这篇文章主要介绍了WPF实现轮播图效果,以下是一个使用WPF技术实现图片和视屏轮播的简单案例代码示例,文中有详细的代码示例,具有一定的参考价值,感兴趣的小伙伴可以自己动手试试
    2023-10-10
  • WPF的ListView控件自定义布局用法实例

    WPF的ListView控件自定义布局用法实例

    这篇文章主要介绍了WPF的ListView控件自定义布局的方法,结合实例形式分析了WPF中ListView控件的布局方法,需要的朋友可以参考下
    2016-07-07
  • unity实现翻页按钮功能

    unity实现翻页按钮功能

    这篇文章主要为大家详细介绍了unity实现翻页按钮功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C# wpf Bitmap转换成WriteableBitmap的方法

    C# wpf Bitmap转换成WriteableBitmap的方法

    本文主要介绍了C# wpf Bitmap转换成WriteableBitmap的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • C#测量程序运行时间及cpu使用时间实例方法

    C#测量程序运行时间及cpu使用时间实例方法

    对一个服务器程序想统计每秒可以处理多少数据包,要如何做?答案是用处理数据包的总数,除以累记处理数据包用的时间,下面我们看一个代码实例就明白了
    2013-11-11
  • C#解码base64编码二进制数据的方法

    C#解码base64编码二进制数据的方法

    这篇文章主要介绍了C#解码base64编码二进制数据的方法,涉及C#中Convert类的静态方法Convert.FromBase64String使用技巧,需要的朋友可以参考下
    2015-04-04

最新评论