你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
在VC中实现软件版权保护的几种方法(四)
 

3.1不正确的序列号
利用GetVolumeInformation获取的计算机硬盘卷序列号,不是正确的惟一序列号。

void CWJGISApp::Register()

{

   DWORD VolumeSerialNumber;

   GetVolumeInformation("c:\\",NULL,NULL,&VolumeSerialNumber,NULL,NULL,NULL,NULL);

   char charVolumeSerialNumber[10];

   itoa(VolumeSerialNumber,charVolumeSerialNumber,10);

   CString strTemp;

   strTemp.Format("%s",charVolumeSerialNumber);

}

该函数获取的序列号在硬盘格式化后会发生变化

3.2 正确获取硬盘的序列号

// 读取硬盘序列号函数

char* CGetHDSerial::GetHDSerial()

{  

  m_buffer[0]='\n';

  // 得到当前操作系统版本

  OSVERSIONINFO OSVersionInfo;

  OSVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

  GetVersionEx( &OSVersionInfo);

  if (OSVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT)

  {  

      // Windows 9x/ME下读取硬盘序列号

      WORD m_wWin9xHDSerial[256];

      Win9xReadHDSerial(m_wWin9xHDSerial); 

      strcpy (m_buffer, WORDToChar (m_wWin9xHDSerial, 10, 19));

  }

  else

  {

      // Windows NT/2000/XP下读取硬盘序列号

      DWORD m_wWinNTHDSerial[256]; 

      // 判断是否有SCSI硬盘
  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089