Unit1.cpp
上传用户:lhxd_sz
上传日期:2014-10-02
资源大小:38814k
文件大小:2k
源码类别:

VC书籍

开发平台:

C++ Builder

  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "Unit1.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma resource "*.dfm"
  8. TForm1 *Form1;
  9. //---------------------------------------------------------------------------
  10. __fastcall TForm1::TForm1(TComponent* Owner)
  11.         : TForm(Owner)
  12. {
  13. }
  14. //---------------------------------------------------------------------------
  15. DWORD __fastcall TForm1::GetDiskSNo(void)
  16. {
  17.   LPTSTR lpRootPathName="A:";
  18.   LPTSTR lpVolumeNameBuffer=new char[12];
  19.   DWORD nVolumeNameSize=12;
  20.   DWORD lpVolumeSerialNumber;
  21.   DWORD lpMaximumComponentLength;
  22.   DWORD lpFileSystemFlags;
  23.   LPTSTR lpFileSystemNameBuffer=new char[10];
  24.   DWORD nFileSystemNameSize=10;
  25.   GetVolumeInformation(
  26.     lpRootPathName,
  27.     lpVolumeNameBuffer,
  28.     nVolumeNameSize,
  29.     &lpVolumeSerialNumber,
  30.     &lpMaximumComponentLength,
  31.     &lpFileSystemFlags,
  32.     lpFileSystemNameBuffer,
  33.     nFileSystemNameSize);
  34.     return lpVolumeSerialNumber;
  35. }
  36. void __fastcall TForm1::Button1Click(TObject *Sender)
  37. {
  38.   int ff;
  39.   DWORD dd;
  40.   dd=GetDiskSNo();
  41.   dd^=0x87654321;
  42.   ff = FileCreate("A:\sec.sno");
  43.   if(ff==-1)
  44.   {
  45.     ShowMessage("加密不成功!");
  46.   }
  47.   FileWrite(ff, &dd,sizeof(dd));
  48.   FileClose(ff);
  49.   Edit1->Text=IntToHex((int)dd,1);
  50.   ShowMessage("加密成功!");
  51. }
  52. //---------------------------------------------------------------------------
  53. void __fastcall TForm1::Button2Click(TObject *Sender)
  54. {
  55.   int ff;
  56.   DWORD dd,dd1;
  57.   dd=GetDiskSNo();
  58.   ff = FileOpen("A:\sec.sno",fmOpenRead);
  59.   if(ff==-1)
  60.   {
  61.     ShowMessage("没有加密文件!");
  62.   }
  63.   FileRead(ff, &dd1,sizeof(dd1));
  64.   FileClose(ff);
  65.   dd1^=0x87654321;
  66.   Edit1->Text=IntToHex((int)dd,1);
  67.   if(dd==dd1)
  68.     ShowMessage("读加密成功!");
  69.   else
  70.     ShowMessage("不是我的加密盘!");
  71. }
  72. //---------------------------------------------------------------------------