C#:基于WDK和WMI获取机器指纹
来源:互联网 发布:人像变卡通软件 编辑:程序博客网 时间:2024/04/27 16:02
同系列文章:
功能描述:
- VC:基于WDK和WMI获取机器指纹
- C#:基于WDK和WMI获取机器指纹
源代码出售:
- 实现基于WDK获取网卡原生Mac地址
- 实现基于WMI获取网卡原生Mac地址、硬盘序列号、CPU ID
- 实现基于WDK获取系统所有设备的VID和PID
动态库及测试程序下载:
价格:壹仟元人民币
QQ:36748897
HWiNFO CS 2014-04-07.zip
HWiNFO类公开方法
/* ---------------------------------------------------------- * 文件名称:HWiNFO.cs * * 作者:秦建辉 * * QQ:36748897 * * 博客:http://www.firstsolver.com/wordpress/ * * 开发环境: * Visual Studio V2013 * .NET Framework 4 Client Profile * * 版本历史: * V1.02014年04月06日 * 实现基于WMI获取网卡原生MAC地址、硬盘序列号、CPU ID * 实现基于WDK获取网卡原生MAC地址 * 实现结合设备安装类GUID和设备接口类GUID获取设备VIDPID------------------------------------------------------------ */using System;using System.Collections.Generic;using System.Management;using System.Runtime.InteropServices;using System.Text;namespace Splash{ [StructLayout(LayoutKind.Sequential)] public struct T_VIDPID { public UInt16 VendorID; // 供应商标识 public UInt16 ProductID; // 产品编号 } public static class HWiNFO { /// <summary> /// 基于WMI获取设备属性值 /// </summary> /// <param name="QueryIndex">要查询的属性值索引</param> /// <returns>属性值集合</returns> /// <remarks> /// QueryIndex其值含义如下: /// 0:网卡原生MAC地址(剔除虚拟网卡) /// 1:网卡原生MAC地址(剔除虚拟网卡和USB网卡) /// 2:硬盘序列号 /// 3:主板序列号 /// 4:CPU ID /// 5:BIOS序列号 /// 6:主板型号 /// 7:网卡当前MAC地址(剔除虚拟网卡) /// 8:网卡当前MAC地址(剔除虚拟网卡和USB网卡) /// </remarks> public static String[] WMI_DeviceQuery(Int32 QueryIndex); /// <summary> /// 查看系统中是否存在指定标识的硬件设备 /// </summary> /// <param name="CPUID">处理器标识,可以为空</param> /// <param name="HardDiskSerialNumber">硬盘序列号,可以为空</param> /// <param name="MacAddress">网卡MAC地址(已剔除虚拟网卡和USB网卡),可以为空</param> /// <returns> /// true:匹配成功 /// false:匹配失败 /// </returns> /// <remarks> /// 说明: /// 对设备标识不区分大小写 /// 空项不做判断,非空项必须全部满足 /// </remarks> public static Boolean WMI_DeviceMatch(String CPUID, String HardDiskSerialNumber, String MacAddress); /// <summary> /// 输出硬件信息到指定INI文件 /// </summary> /// <param name="iniFileName">要保存的ini文件名</param> /// <returns> /// true:成功 /// false:失败 /// </returns> public static Boolean WMI_DeviceInfoPrint(String iniFileName); /// <summary> /// 结合设备安装类GUID和设备接口类GUID获取设备VIDPID /// </summary> /// <param name="SetupClassGuid">设备安装类GUID,Empty忽视</param> /// <param name="InterfaceClassGuid">设备接口类GUID,Empty忽视</param> /// <returns>设备VIDPID列表</returns> /// <remarks> /// 优点:直接通过设备实例ID提取VIDPID,从而无需获取设备路径来读写IO /// </remarks> public static T_VIDPID[] WDK_QueryVidPid(Guid SetupClassGuid, Guid InterfaceClassGuid); /// <summary> /// 验证设备的VIDPID /// </summary> /// <param name="VendorID">设备VID</param> /// <param name="ProductID">设备PID</param> /// <param name="SetupClassGuid">设备安装类GUID,Empty忽视</param> /// <param name="InterfaceClassGuid">设备接口类GUID,Empty忽视</param> /// <returns> /// true:匹配成功 /// false:匹配失败 /// </returns> public static Boolean WDK_VIDPIDMatch(UInt16 VendorID, UInt16 ProductID, Guid SetupClassGuid, Guid InterfaceClassGuid); /// <summary> /// 输出VIDPID信息到指定INI文件 /// </summary> /// <param name="iniFileName">要保存的ini文件名</param> /// <returns> /// true:成功 /// false:失败 /// </returns> public static Boolean WDK_VIDPIDPrint(String iniFileName); /// <summary> /// 通过WDK获取网卡原生MAC地址 /// </summary> /// <param name="isIncludeUSB">是否包含USB网卡,默认不包含USB网卡</param> /// <returns>获取到的网卡原生MAC地址集合</returns> public static String[] WDK_QueryMacAddress(Boolean isIncludeUSB = false); /// <summary> /// 查看系统中是否存在指定标识的硬件设备 /// </summary> /// <param name="CPUID">处理器标识,可以为空</param> /// <param name="HardDiskSerialNumber">硬盘序列号,可以为空</param> /// <param name="MacAddress">网卡MAC地址(已剔除虚拟网卡和USB网卡),可以为空</param> /// <returns> /// true:匹配成功 /// false:匹配失败 /// </returns> /// <remarks> /// 说明: /// 对设备标识不区分大小写 /// 空项不做判断,非空项必须全部满足 /// </remarks> public static Boolean WDK_DeviceMatch(String CPUID, String HardDiskSerialNumber, String MacAddress); /// <summary> /// 输出硬件信息到指定INI文件 /// </summary> /// <param name="iniFileName">要保存的ini文件名</param> /// <returns> /// true:成功 /// false:失败 /// </returns> public static Boolean WDK_DeviceInfoPrint(String iniFileName); }}
测试软件界面:
0 0
- C#:基于WDK和WMI获取机器指纹
- VC:基于WDK和WMI获取机器指纹
- C#:基于WDK获取设备路径集合
- 【WMI】WMI For C#/dotNet 用WMI获取系统信息
- C#,WMI获取系统信息
- 获取机器硬件信息(WMI)
- 【WMI】WMI For C++/COM 获取系统信息过程
- C/C++通过WMI和系统API函数获取获取系统硬件配置信息
- C/C++通过WMI和系统API函数获取获取系统硬件配置信息
- C/C++通过WMI和系统API函数获取获取系统硬件配置信息 .
- C/C++通过WMI和系统API函数获取获取系统硬件配置信息
- C/C++通过WMI和系统API函数获取获取系统硬件配置信息
- C#:基于WMI监视USB插拔
- C#:基于WMI监视USB插拔
- C#:基于WMI查询USB设备
- C#:基于WMI监视USB插拔
- C#:基于WMI查询USB设备
- (C++)从本机获取WMI数据.
- SQL SEVER创建登录帐号
- 在linux上安装mysql
- 被遗忘的枯叶蝶
- jre与jdk的区别
- Lpad函数和Rpad的使用
- C#:基于WDK和WMI获取机器指纹
- 20个C++精品视频教程汇总贴!
- C语言输出sin结果
- quirks mode(怪异模式) 和 standard mode(标准模式)
- Collections.synchronizedList
- C#获取文件物理相对绝对路径目录的N种方法
- Digital Roots
- 筛选生成素数
- Android墨迹3.0特性介绍效果实现——做一个垂直滚动的Layout