C#檢測是否有u盤插入的方法
更新時間:2015年04月25日 17:32:51 作者:gogo
這篇文章主要介紹了C#檢測是否有u盤插入的方法,涉及C#操作硬件的相關(guān)技巧,需要的朋友可以參考下
本文實例講述了C#檢測是否有u盤插入的方法。分享給大家供大家參考。具體如下:
該C#代碼可監(jiān)控是否有u盤插入,同時可以監(jiān)控其它驅(qū)動器的變化
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) { // 發(fā)生設(shè)備變動 const int WM_DEVICECHANGE = 0x0219; // 系統(tǒng)檢測到一個新設(shè)備 const int DBT_DEVICEARRIVAL = 0x8000; // 系統(tǒng)完成移除一個設(shè)備 const int DBT_DEVICEREMOVECOMPLETE = 0x8001; // 邏輯卷標(biāo) 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#程序設(shè)計有所幫助。
相關(guān)文章
C#使用foreach遍歷哈希表(hashtable)的方法
這篇文章主要介紹了C#使用foreach遍歷哈希表(hashtable)的方法,是C#中foreach語句遍歷散列表的典型應(yīng)用,非常具有實用價值,需要的朋友可以參考下2015-04-04C#?wpf?Bitmap轉(zhuǎn)換成WriteableBitmap的方法
本文主要介紹了C#?wpf?Bitmap轉(zhuǎn)換成WriteableBitmap的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08C#解碼base64編碼二進(jìn)制數(shù)據(jù)的方法
這篇文章主要介紹了C#解碼base64編碼二進(jìn)制數(shù)據(jù)的方法,涉及C#中Convert類的靜態(tài)方法Convert.FromBase64String使用技巧,需要的朋友可以參考下2015-04-04