protected override void WndProc(ref Message m) { UInt32 WM_DEVICECHANGE = 0x0219; UInt32 DBT_DEVTUP_VOLUME = 0x02; UInt32 DBT_DEVICEARRIVAL = 0x8000; UInt32 DBT_DEVICEREMOVECOMPLETE = 0x8004; if ((m.Msg == WM_DEVICECHANGE) && (m.WParam.ToInt32() == DBT_DEVICEARRIVAL)) //디바이스 연결 { int devType = Marshal.ReadInt32(m.LParam, 4); if (devType == DBT_DEVTUP_VOLUME) { RefreshDevice(); } } if ((m.Msg == WM_DEVICECHANGE) && (m.WParam.ToInt32() == DBT_DEVICEREMOVECOMPLETE)) //디바이스 연결 해제 { int devType = Marshal.ReadInt32(m.LParam, 4); if (devType == DBT_DEVTUP_VOLUME) { RefreshDevice(); } }
base.WndProc(ref m); }
|
public void RefreshDevice() { listBox1.Items.Clear(); string[] ls_drivers = System.IO.Directory.GetLogicalDrives(); //연결 되어있는 디바이스 얻어오기 foreach (string device in ls_drivers) { System.IO.DriveInfo dr = new System.IO.DriveInfo(device); if (dr.DriveType == System.IO.DriveType.Removable) //제거 가능한 타입이라면 { listBox1.Items.Add(device); } } } |
'.Net > Winform' 카테고리의 다른 글
C# Keyboard, Mouse Hooking (0) | 2012.06.28 |
---|---|
C# 지정한 폴더 감시하기 (0) | 2012.06.27 |
RichTextBox 원하는 단어들 원하는 색으로 변경 (0) | 2012.05.11 |
RichTextBox Keyword 비쥬얼 스튜디오 효과내기 (0) | 2012.05.10 |
C# FileSystemWatcher (3) | 2011.12.07 |