📄 main.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 + -