?? mainwindow.cpp
字號:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <Clipbrd.hpp>
#include "MainWindow.h"
#include "include\global.h"
#include "include\md5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMD5Coder *MD5Coder;
//---------------------------------------------------------------------------
__fastcall TMD5Coder::TMD5Coder(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
AnsiString MD5Code (AnsiString FileName)
{
unsigned char digest[16];
if(MDFile(FileName.c_str(),digest))
{
AnsiString TmpMD5;
for(int i=0;i<16;i++)
TmpMD5+=IntToHex(digest[i],2);
return TmpMD5;
}
else
return "文件讀取錯(cuò)誤!";
}
bool MDFile (char *filename,unsigned char digest[16])
{
FILE *file = fopen (filename, "rb");
MD5_CTX context;
unsigned char buffer[1024];
int len;
if (file == NULL)
return false;
else {
MD5Init (&context);
while (len = fread (buffer, 1, 1024, file))
MD5Update (&context, buffer, len);
MD5Final (digest, &context);
fclose (file);
return true;
}
}
void __fastcall TMD5Coder::CmdOKClick(TObject *Sender)
{
DiaOpen->Execute();
TextOutput->Text=MD5Code(DiaOpen->FileName);
TextInput->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TMD5Coder::FormActivate(TObject *Sender)
{
SetWindowLong(TextOutput->Handle,GWL_STYLE,GetWindowLong(TextOutput->Handle, GWL_STYLE) | ES_CENTER);
SetWindowLong(TextInput->Handle,GWL_STYLE,GetWindowLong(TextInput->Handle, GWL_STYLE) | ES_CENTER);
for(int i=0;i<=ParamCount();i++)
{
if(FileExists(ParamStr(i)))
TextOutput->Text=MD5Code(ParamStr(i));
else
TextInput->Text=ParamStr(i);
}
TextInput->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TMD5Coder::LabTitleMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button == mbLeft)
{
ReleaseCapture();
Perform(WM_NCLBUTTONDOWN, HTCAPTION, 0);
}
}
//---------------------------------------------------------------------------
void __fastcall TMD5Coder::ImgCloseClick(TObject *Sender)
{
Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TMD5Coder::TextInputChange(TObject *Sender)
{
if(TextOutput->Text.Length()!=32)CmdOKClick(Sender);
if(TextInput->Text==TextOutput->Text)
{
LabInfo->Font->Color=clRed;
LabInfo->Caption="驗(yàn)證成功";
}
else
{
LabInfo->Font->Color=clNavy;
LabInfo->Caption="驗(yàn)證失敗";
}
}
//---------------------------------------------------------------------------
void __fastcall TMD5Coder::TextInputClick(TObject *Sender)
{
if(Clipboard()->AsText.Length()==32)TextInput->Text=Clipboard()->AsText;
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -