Improve screen spy efficiency with DXGI
This commit is contained in:
@@ -8,25 +8,15 @@
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
#define ALGORITHM_DIFF 1
|
||||
|
||||
#define COPY_ALL 1 // <20><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>ֿ鿽<D6BF><E9BFBD><EFBFBD><EFBFBD>added by yuanyuanxiang 2019-1-7<><37>
|
||||
#include "CursorInfo.h"
|
||||
#include "ScreenCapture.h"
|
||||
|
||||
|
||||
class CScreenSpy
|
||||
class CScreenSpy : public ScreenCapture
|
||||
{
|
||||
private:
|
||||
BYTE m_bAlgorithm; // <20><>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>㷨
|
||||
ULONG m_ulbiBitCount; // ÿ<><C3BF><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
ULONG m_ulFullWidth; // <20><>Ļ<EFBFBD><C4BB>
|
||||
ULONG m_ulFullHeight; //<2F><>Ļ<EFBFBD><C4BB>
|
||||
bool m_bZoomed; // <20><>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double m_wZoom; // <20><>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD>
|
||||
double m_hZoom; // <20><>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD>
|
||||
|
||||
LPBITMAPINFO m_BitmapInfor_Full; // BMP<4D><50>Ϣ
|
||||
|
||||
HWND m_hDeskTopWnd; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4>ھ<EFBFBD><DABE><EFBFBD>
|
||||
HDC m_hFullDC; //Explorer.exe <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>豸DC
|
||||
|
||||
@@ -39,10 +29,9 @@ private:
|
||||
PVOID m_DiffBitmapData_Full;
|
||||
|
||||
ULONG m_RectBufferOffset; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
BYTE* m_RectBuffer; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
public:
|
||||
CScreenSpy(ULONG ulbiBitCount);
|
||||
CScreenSpy(ULONG ulbiBitCount, int gop = DEFAULT_GOP);
|
||||
|
||||
virtual ~CScreenSpy();
|
||||
|
||||
@@ -82,11 +71,12 @@ public:
|
||||
m_RectBufferOffset += ulLength;
|
||||
}
|
||||
|
||||
LPVOID GetFirstScreenData();
|
||||
virtual LPBYTE GetFirstScreenData(ULONG* ulFirstScreenLength);
|
||||
|
||||
LPVOID GetNextScreenData(ULONG* ulNextSendLength);
|
||||
|
||||
ULONG CompareBitmap(LPBYTE CompareSourData, LPBYTE CompareDestData, LPBYTE szBuffer, DWORD ulCompareLength);
|
||||
virtual LPBYTE ScanNextScreen() {
|
||||
ScanScreen(m_hDiffMemDC, m_hFullDC, m_BitmapInfor_Full->bmiHeader.biWidth, m_BitmapInfor_Full->bmiHeader.biHeight);
|
||||
return (LPBYTE)m_DiffBitmapData_Full;
|
||||
}
|
||||
|
||||
VOID ScanScreen(HDC hdcDest, HDC hdcSour, ULONG ulWidth, ULONG ulHeight);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user