本文實例講述了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#程序設計有所幫助。
新聞熱點
疑難解答