vc 获取机器码

时间:2022-03-04 14:13:33
所谓机器的机器码其实就是电脑的一些特征码,包括硬盘序列号、CPU编号、BIOS编号等等和硬件有关的编号。
你可以用在VC++中获取这些编号,并用一定的算法将他们组合后,就生成了一个机器码,用这个机器码按照一定的算法生成一个注册码,这样就对你的软件进行了保护,使得只有拥有这个机器码的机器才能安装你的软件。
获取硬盘序列号的方法如下(代码)
以驱动器C为例:
  char     m_Volume[256];//卷标名   
  char     m_FileSysName[256];   
  DWORD   m_SerialNum;//序列号   
  DWORD   m_FileNameLength;   
  DWORD   m_FileSysFlag;   
  ::GetVolumeInformation("c:\\",   
  m_Volume,   
  256,   
  &m_SerialNum,   
  &m_FileNameLength,   
  &m_FileSysFlag,   
  m_FileSysName,   
  256);  

  执行该函数后,m_Volume就是卷标名字符串,m_SerialNum就是序列号


一个实例:
	//获取机器码
	char     m_Volume[256];//卷标名   
	char     m_FileSysName[256];   
	DWORD   m_SerialNum;//序列号   
	DWORD   m_FileNameLength;   
	DWORD   m_FileSysFlag;   
	::GetVolumeInformation("c:\\",   
		m_Volume,   
		256,   
		&m_SerialNum,   
		&m_FileNameLength,   
		&m_FileSysFlag,   
		m_FileSysName,   
		256); 
	CString Serial;
	Serial.Format("1%04x",m_SerialNum^ 0x34795814);
	SetDlgItemText(IDC_EDIT_User,Serial);

  偶尔也会用到。保留 一份吧。