C# 获取USB磁盘信息
来源:互联网 发布:keep软件的用法 编辑:程序博客网 时间:2024/06/14 07:46
USB设备插入USB接口之后,windows产生设备消息,发往每一个window消息队列,可以从WndProc中获得USB插入或移除消息:
protected override void WndProc(ref Message sysm) { const int WM_DEVICECHANGE = 0x219; const int DBT_DEVICEARRIVAL = 0x8000; try { if(sysm.Msg==WM_DEVICECHANGE) if (sysm.WParam.ToInt32() == DBT_DEVICEARRIVAL) { string[] dirs = Environment.GetLogicalDrives(); //取得所有的盘符 foreach (string dir in dirs) { DriveInfo Tdriver=new DriveInfo(dir); if(Tdriver.DriveType==DriveType.Removable){ { while (Tdriver.IsReady == false) { Thread.Sleep(500); } try { string PSTR = ""; PSTR += "磁盘名称:" + Tdriver.Name + "\r\n"; PSTR += "磁盘卷标:" + Tdriver.VolumeLabel + "\r\n"; PSTR += "文件系统:" + Tdriver.DriveFormat + "\r\n"; PSTR += "剩余大小:" + Tdriver.AvailableFreeSpace.ToString() + "\r\n"; PSTR += "总体容量:" + Tdriver.TotalSize.ToString() + "\r\n"; MessageBox.Show(PSTR); } catch { MessageBox.Show("error"); } } } } } } catch { } base.WndProc(ref sysm);
通过对dirs的的检测,可以发现哪些是USB盘,用USBPhysic.dll可以读取到USB设备的物理信息:
[DllImport("USBPhysic")] public static extern int Init(string sUser, string sRegCode); [DllImport("USBPhysic")] public static extern int GetUSBPhysicInfo(int diskIndex, int InfoType, StringBuilder pHddInfo);
以上是引用USBPhysic.dll中的两个方法,当然Init方法用来注册USBPhysic.dll,之后可以读取到设备信息:
private void Form1_Load(object sender, EventArgs e) { string Pstr = ""; StringBuilder T = new StringBuilder(); int A = Init("Mndsoft.com", "C88C-7F7A-725B"); Pstr += "磁盘总数:" + A.ToString() + "\r\n"; A = GetUSBPhysicInfo(0, 0, T); Pstr += "磁盘串号:" + T.ToString() + "\r\n"; A = GetUSBPhysicInfo(0, 1, T); Pstr += "磁盘名称:" + T.ToString() + "\r\n"; A = GetUSBPhysicInfo(0, 2, T); Pstr += "磁盘厂商:" + T.ToString() + "\r\n"; MessageBox.Show(Pstr); }
上面默认读取0号磁盘信息,对于一个示例U盘,返回如下:
- C# 获取USB磁盘信息
- c#获取磁盘信息
- C#获取物理磁盘信息
- c# 获取逻辑磁盘信息
- C#获取本机磁盘信息
- C#获取磁盘列表与信息
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- C#小伎俩获取本地或远程磁盘使用信息
- MFC--获取磁盘信息
- WMI获取磁盘信息
- 获取磁盘信息
- 获取磁盘信息
- 获取磁盘容量信息
- linux获取磁盘信息
- Sigar获取磁盘信息
- http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 相关问
- Spring的七大模块
- js' 字符串转换成JSON对象的方法
- java面试程序题收集
- android 经典错误
- C# 获取USB磁盘信息
- JVM 乱记
- jQuery 联动 与 DOCTYPE W3C<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 结合没ajax效果问题
- SQL 左外连接,右外连接,全连接,内连接,交叉连接
- JAVA [ Annotation]
- SVN在linux下常用命令详解
- java学习网站
- 面试题之约瑟夫问题-----循环链表简单详述
- ASP.NET 网页设计如何设置全局背景图片