• 大小: 898KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: 屏幕分块  

资源简介

把屏幕分成四块截图。每次都会检测当前截图与上一课截图是否变化。通过CRC值来对比

资源截图

代码片段和文件信息

// Crc32.cpp : Defines the entry point for the console application.
//

#include “stdafx.h“

#include “StdAfx.h“
#include “Crc.h“


CCRC crc32;

CCRC::CCRC()
{
InitCrc32();
}

CCRC::~CCRC()
{

}

DWORD CCRC::Reflect(DWORD dwRef BYTE ch)
{
DWORD value = 0;
for(int i = 1; i < (ch + 1); i++)
{
if(dwRef & 1)
value |= 1 << (ch - i);
dwRef >>= 1;
}
return value;
}

void CCRC::InitCrc32()
{
int i j;
for (i = 0; i < CRC32_TABLE_NUM; i++)
{
m_dwCrc32Table[i] = Reflect(i 8) << 24;
for (j = 0; j < 8; j++)
{
m_dwCrc32Table[i] = (m_dwCrc32Table[i] << 1) ^ (m_dwCrc32Table[i] & (1 << 31) ? CRC32_MAGIC : 0);
}
m_dwCrc32Table[i] = Reflect(m_dwCrc32Table[i] 32);
}
}


DWORD CCRC::GetBufCrc32(LPBYTE lpBuf DWORD dwSize)
{
StartBlock();
if (AppendBlock(lpBuf dwSize))
{
return GetBlockCrc32();
}
else
{
return CRC32_INVALID_VALUE;
}
}


void CCRC::StartBlock()
{
m_dwCrc32Block = CRC32_INVALID_VALUE;
}

BOOL CCRC::AppendBlock(LPBYTE lpBuf DWORD dwSize)
{
if (NULL == lpBuf)
{
return FALSE;
}
DWORD i;
for (i=0; i {
m_dwCrc32Block = (m_dwCrc32Block >> 8) ^ m_dwCrc32Table[(m_dwCrc32Block & 0xFF) ^ lpBuf[i]];
}
return TRUE;
}

DWORD CCRC::GetBlockCrc32()
{
if (CRC32_INVALID_VALUE == m_dwCrc32Block)
{
return CRC32_INVALID_VALUE;
}
return (m_dwCrc32Block^CRC32_INVALID_VALUE);
}


DWORD CCRC::GetFileCrc32(LPCTSTR szFile)
{
StartBlock();

HANDLE hFile;
hFile = ::CreateFile(szFile
GENERIC_READ
0
NULL
OPEN_ALWAYS
FILE_ATTRIBUTE_NORMAL
NULL
);

if (INVALID_HANDLE_VALUE != hFile)
{
DWORD dwFileSize;
dwFileSize = GetFileSize(hFile NULL);
if (dwFileSize > 0)
{
HANDLE hFileMapping;
hFileMapping = ::CreateFileMapping(hFile NULL PAGE_READONLY 0 0 NULL);
if (NULL != hFileMapping)
{
LPBYTE pbFile = (PBYTE)::MapViewOfFile(hFileMapping FILE_MAP_READ 0 0 0);
if (NULL != hFileMapping)
{
AppendBlock(pbFile dwFileSize);
::UnmapViewOfFile(pbFile);
}

::CloseHandle(hFileMapping);
}
}

::CloseHandle(hFile);
}
return GetBlockCrc32();   
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2249  2012-07-19 18:37  屏幕实时传输\屏幕实时传输\Crc.cpp

     文件        766  2012-07-19 18:37  屏幕实时传输\屏幕实时传输\Crc.h

     文件       2234  2014-03-01 12:37  屏幕实时传输\屏幕实时传输\Debug\cl.command.1.tlog

     文件      65866  2014-03-01 12:37  屏幕实时传输\屏幕实时传输\Debug\CL.read.1.tlog

     文件       1676  2014-03-01 12:37  屏幕实时传输\屏幕实时传输\Debug\CL.write.1.tlog

     文件      37581  2014-03-01 10:46  屏幕实时传输\屏幕实时传输\Debug\Crc.obj

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link-cvtres.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link-cvtres.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link-mt.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link-mt.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link-rc.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link-rc.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.3092-cvtres.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.3092-cvtres.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.3092-mt.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.3092-mt.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.3092-rc.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.3092-rc.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.3092.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.3092.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.404-cvtres.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.404-cvtres.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.404-mt.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.404-mt.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.404-rc.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.404-rc.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.404.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.404.write.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.4376-cvtres.read.1.tlog

     文件          2  2014-03-01 12:32  屏幕实时传输\屏幕实时传输\Debug\link.4376-cvtres.write.1.tlog

............此处省略151个文件信息

评论

共有 条评论

相关资源