我想编写一个识别机器的程序(用于许可目的),我想获得以下信息并使用这些数据编译xml文件:
有人可以将我推荐给提供此类信息的lib - 我用c ++编写我的程序并且找到这样的lib会遇到麻烦。
我应该在注册表中挖掘这些信息吗?
非常感谢, 奥弗
答案 0 :(得分:3)
使用WMI并获取主板的序列号应该足够了(其他选项不太安全,因为旧计算机可能没有网络适配器和/或CPU可能比主板更可能更改)
答案 1 :(得分:0)
GetAdaptersInfo()将为您提供MAC地址。以下是如何将其用于此目的的示例。
/** *************************************
return string containing first MAC address on computer
NOTE: requires adding Iphlpapi.lib to project
*/
string GetMac()
{
char data[4096];
ZeroMemory( data, 4096 );
unsigned long len = 4000;
PIP_ADAPTER_INFO pinfo = ( PIP_ADAPTER_INFO ) data;
char sbuf[20];
string sret;
DWORD ret = GetAdaptersInfo( pinfo, &len );
if( ret != ERROR_SUCCESS )
return string("**ERROR**");
for(int k = 0; k < 5; k++ ) {
sprintf(sbuf,"%02X-",pinfo->Address[k]);
sret += sbuf;
}
sprintf(sbuf,"%02X",pinfo->Address[5]);
sret += sbuf;
return( sret );
}
有关完整系统执行此类操作的示例,请查看CodeProject上的Manuele Sicuteri的article。
答案 2 :(得分:0)
不要使用WMI(慢,没有安装在NT上) 使用标准的Win32 apis
见新闻://comp.os.ms-windows.programmer.win32 所有这些已经回答了几十年(C / ++代码)