资 源 简 介
翻译 maninwest@Codeforge 作者:Michael N Haephrati (האפרתי)@CodeProject很多桌面应用开发员需要唯一识别出运行软件的计算机。这种身份识别必须能生成唯一的数据元素,每台计算机各不相同,并在同一台给定计算机上可重现相同的 ID。 WMI 的类Windows 提供了一组可以用于硬件枚举和身份识别任务的类,称为 WMI ( Windows Management Instrumentation), 是 Windows Driver Model (WDM) 的扩展。WMI 根据安装组件提供静态信息和更改的动态信息,可以在服务器上或者计算机使用多数编程语言进行本地和远程管理,枚举安装的组件并提醒发生的更改。我通过研究总结出,如果重视速度和可靠性的话,最好通过 Win32 API 访问硬件而不使用 WMI。我遇到了很多延迟,且在某些情况下, WMI 不能检测出 CPU ID 等元素。这里着重介绍不使用WMI 获取此数据的直接方法。获得唯一的 CPU ID似乎最好的方法是取样 CPU 唯一识别号 (或者CPU ID)。但是,这种选择有几个问题,让依赖读取 CPU ID 几乎不可能实现。首先,除了旧的奔腾 III,大多数 CPU 都没有唯一的 CPU 序列号。Intel 已经处于安全考虑移除了此功能。整个主板仍可以生成一个 ID ,这本是可以实现的,但是由于主板的类型很多制造商很多,让生成一个覆盖所有的唯一 ID 基本上不可能。一家名为 CPU ID 的法国公司在此方面做了很多研究,他们花费了很多资源来获得每个主板和 CPU
文 件 列 表
GetMacAddress_by_Michael_Haephrati.sln
GetMacAddress_by_Michael_Haephrati\GetMacAddress_by_Michael_Haephrati.cpp
GetMacAddress_by_Michael_Haephrati\GetMacAddress_by_Michael_Haephrati.h
GetMacAddress_by_Michael_Haephrati\GetMacAddress_by_Michael_Haephrati.rc
GetMacAddress_by_Michael_Haephrati\GetMacAddress_by_Michael_Haephrati.vcxproj
GetMacAddress_by_Michael_Haephrati\GetMacAddress_by_Michael_Haephrati.vcxproj.filters
GetMacAddress_by_Michael_Haephrati\GetMacAddress_by_Michael_Haephrati.vcxproj.user
GetMacAddress_by_Michael_Haephrati\GetMacAddress_by_Michael_HaephratiDlg.cpp
GetMacAddress_by_Michael_Haephrati\GetMacAddress_by_Michael_HaephratiDlg.h
GetMacAddress_by_Michael_Haephrati\HardDriveSerialNumer.cpp
GetMacAddress_by_Michael_Haephrati\HardDriveSerialNumer.h
GetMacAddress_by_Michael_Haephrati\ReadMe.txt
GetMacAddress_by_Michael_Haephrati\resource.h
GetMacAddress_by_Michael_Haephrati\stdafx.cpp
GetMacAddress_by_Michael_Haephrati\stdafx.h
GetMacAddress_by_Michael_Haephrati\targetver.h
GetMacAddress_by_Michael_Haephrati\res\GetMacAddress_by_Michael_Haephrati.ico
GetMacAddress_by_Michael_Haephrati\res\GetMacAddress_by_Michael_Haephrati.rc2