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

📄 mainwindow.cpp

📁 对文件产生md5摘要.文件是否被修改一看就知。
💻 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 "文件读取错误!";
}

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="验证成功";
        }
        else
        {
                LabInfo->Font->Color=clNavy;
                LabInfo->Caption="验证失败";
        }
}
//---------------------------------------------------------------------------

void __fastcall TMD5Coder::TextInputClick(TObject *Sender)
{
        if(Clipboard()->AsText.Length()==32)TextInput->Text=Clipboard()->AsText;        
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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