想问一下在一般的软件中所谓机器码是指的网卡编号还是CPU编号或者什么别的啊 如题想问一下在一般的软件中所谓机器码是指的网卡编号还是CPU编号或者什么别的啊,在VC中怎样获得机器吗啊,有没有现成的函数啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你个函数你参看一下//功能:从注册表中读取注册信息,并判断是否为合法注册bool CXYZApp::JudegeRegedit(){ bool IsRegedit = true; HKEY hKEY;//定义有关的hKEY,在查询结束时要关闭 //打开与路径 data_Set相关的hKEY LPCTSTR data_Set="SOFTWARE\\ADTC\\"; //访问注册表,hKEY则保存此函数所打开的键的句柄 long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY)); if(ret0!=ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行 { //AfxMessageBox("错误:软件还没有注册"); IsRegedit = false; } //查询有关的数据 LPBYTE regedit_Get=new BYTE[80]; LPBYTE machine_Get=new BYTE[80]; DWORD type_1=REG_SZ;//定义数据类型 DWORD cbData_1=80;//定义数据长度 DWORD cbData_2=80;//定义数据长度 //得到硬盘的序列号 DWORD VolumeSerialNumber; GetVolumeInformation("c:\\",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10); char pNum[10]; itoa(VolumeSerialNumber,pNum,16); CString strVolumeSerialNumber = ""; strVolumeSerialNumber= pNum; strVolumeSerialNumber = strVolumeSerialNumber.Left(8); //得到机器码 long ret1=::RegQueryValueEx(hKEY,"ROBOT",NULL,&type_1,machine_Get,&cbData_1); if(ret1!=ERROR_SUCCESS) { IsRegedit = false; } //判断硬盘序列号是否和机器码相同 CString TmpStr = ""; TmpStr = machine_Get; TmpStr = TmpStr.Left(8); if(TmpStr != strVolumeSerialNumber) { IsRegedit = false; } //得到注册码 long ret2=::RegQueryValueEx(hKEY,"REGEDIT",NULL,&type_1,regedit_Get,&cbData_2); if(ret2!=ERROR_SUCCESS) { IsRegedit = false; } //根据机器码得到正确的注册码 TmpStr = ""; TmpStr = machine_Get; TmpStr = GetRegeditString(TmpStr); TmpStr.Left(8); CString TmpRegedit = ""; TmpRegedit = regedit_Get; TmpRegedit.Left(8); if(TmpRegedit != TmpStr) { IsRegedit = false; } ::RegCloseKey(hKEY); return IsRegedit;} 使用过shenyi0106的【IOCP_API之TCP服务器编程】的进来看下,也请shenyi0106帮助解答下问题... 网络传输的问题,,,,, CDC对象只能作为局部的使用? 求救!如何在程序中关闭、开启系统的超线程? 关于waveOutOpen的简单问题,大家帮帮我。 CRectTracker问题. 如何压缩EXE、DLL文件使它变小。 关于activereport的使用 讨论一个重要的问题: Microsoft Visual Studio 2013显示问题 错误提示:"Out of Memory",如何处理??请指点一下…… 请问一个Visual C++ 6.0设置问题
//功能:从注册表中读取注册信息,并判断是否为合法注册
bool CXYZApp::JudegeRegedit()
{
bool IsRegedit = true;
HKEY hKEY;//定义有关的hKEY,在查询结束时要关闭 //打开与路径 data_Set相关的hKEY
LPCTSTR data_Set="SOFTWARE\\ADTC\\";
//访问注册表,hKEY则保存此函数所打开的键的句柄
long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY));
if(ret0!=ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行
{
//AfxMessageBox("错误:软件还没有注册");
IsRegedit = false;
} //查询有关的数据
LPBYTE regedit_Get=new BYTE[80];
LPBYTE machine_Get=new BYTE[80];
DWORD type_1=REG_SZ;//定义数据类型
DWORD cbData_1=80;//定义数据长度
DWORD cbData_2=80;//定义数据长度
//得到硬盘的序列号
DWORD VolumeSerialNumber;
GetVolumeInformation("c:\\",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10); char pNum[10];
itoa(VolumeSerialNumber,pNum,16); CString strVolumeSerialNumber = "";
strVolumeSerialNumber= pNum;
strVolumeSerialNumber = strVolumeSerialNumber.Left(8);
//得到机器码
long ret1=::RegQueryValueEx(hKEY,"ROBOT",NULL,&type_1,machine_Get,&cbData_1);
if(ret1!=ERROR_SUCCESS)
{
IsRegedit = false;
} //判断硬盘序列号是否和机器码相同
CString TmpStr = "";
TmpStr = machine_Get;
TmpStr = TmpStr.Left(8);
if(TmpStr != strVolumeSerialNumber)
{
IsRegedit = false;
}
//得到注册码
long ret2=::RegQueryValueEx(hKEY,"REGEDIT",NULL,&type_1,regedit_Get,&cbData_2);
if(ret2!=ERROR_SUCCESS)
{
IsRegedit = false;
} //根据机器码得到正确的注册码
TmpStr = "";
TmpStr = machine_Get;
TmpStr = GetRegeditString(TmpStr);
TmpStr.Left(8);
CString TmpRegedit = "";
TmpRegedit = regedit_Get;
TmpRegedit.Left(8);
if(TmpRegedit != TmpStr)
{
IsRegedit = false;
}
::RegCloseKey(hKEY); return IsRegedit;
}