⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 一款优秀的壳
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Main.h"
#include "stdio.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnProjectClick(TObject *Sender)
{
  OpenDialog->Filter = "Project files|*.opf";
  if (OpenDialog->Execute())
    edtProject->Text = OpenDialog->FileName;        
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnGenerateClick(TObject *Sender)
{
  if (edtInfo1->Text.IsEmpty() && edtInfo2->Text.IsEmpty() && edtInfo3->Text.IsEmpty())
  {
    ShowMessage("No license information entered.");
    return;
  }
  if (!FileExists(edtProject->Text))
  {
    ShowMessage("No project file selected or project file not found.");
    return;
  }
  void *buffer = malloc(1024);
  char info1[32];
  char info2[32];
  char info3[32];
  char project[MAX_PATH];

  KEYFILE_INFO info;
  info.dwSize = sizeof(KEYFILE_INFO);
  lstrcpy(info1,edtInfo1->Text.c_str());
  info.lpInfo1 = info1;
  lstrcpy(info2,edtInfo2->Text.c_str());
  info.lpInfo2 = info2;
  lstrcpy(info3,edtInfo3->Text.c_str());
  info.lpInfo3 = info3;
  info.lpExtInfo = NULL;
  info.lpSystemID = NULL;
  info.lpExpDate = NULL;
  lstrcpy(project,edtProject->Text.c_str());
  info.lpProjectFile = project;
  info.lpBuffer = buffer;

  DWORD size = GenerateKeyfile(&info);
  if (!size)
    ShowMessage("Could not create license file.");
  else
    if (SaveDialog->Execute())
    {
      FILE *keyfile = fopen(SaveDialog->FileName.c_str(),"wb");
      if (keyfile)
      {
        fseek(keyfile,0,SEEK_SET);
        fwrite(buffer,1,size,keyfile);
        fclose(keyfile);
      }
    }
  free(buffer);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnVerifyClick(TObject *Sender)
{
  if (!FileExists(edtProject->Text))
  {
    ShowMessage("No project file selected or project file not found.");
    return;
  }
  OpenDialog->Filter = "License files|*.key";
  if (OpenDialog->Execute())
  {
    FILE *keyfile = fopen(OpenDialog->FileName.c_str(),"rb");
    if (keyfile)
    {
      fseek(keyfile,0,SEEK_END);
      long fsize = ftell(keyfile);
      fseek(keyfile,0,SEEK_SET);
      void *buffer = malloc(fsize);
      fread(buffer,1,fsize,keyfile);
      fclose(keyfile);

      KEYFILE_INFO info;
      info.dwSize = sizeof(KEYFILE_INFO);
      info.lpInfo1 = NULL;
      info.lpInfo2 = NULL;
      info.lpInfo3 = NULL;
      info.lpSystemID = NULL;
      info.lpBuffer = buffer;
      char project[MAX_PATH];
      lstrcpy(project,edtProject->Text.c_str());
      info.lpProjectFile = project;

      if (VerifyKeyfile(&info) == KEYFILE_VER_OK)
        ShowMessage("Valid license.");
      else
        ShowMessage("Invalid license.");
      free(buffer);
    }
    else ShowMessage("Can't open the selected file.");
  }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -