直接正题。
软件需求:给定2张相似图,找出不同处。
A、从游戏窗口获取需要分析的图片
B、对比2图片,辨别出不同处(用红色表示)
C、点击不同处,并给游戏窗口发送点击事件
下图是游戏截图。可见效果还是可以。

1、获得游戏窗口句柄:
CWnd* pGameWnd = FindWindow( NULL, _T("大家来找茬") );
if( !pGameWnd )
{
MessageBox( _T("FindWindow fail! Please run the game!") );
return ;
}
HDC m_srcdc = ::GetDC( *pGameWnd );
2、截图:
bool getPbuffer(int x, int y,DWORD* buffer)
{
CBitmap bitmap;
CDC* srcdc = CDC::FromHandle(m_srcdc);
CDC dc;
bitmap.CreateCompatibleBitmap(srcdc,m_srcWidth,m_srcHeight);
dc.CreateCompatibleDC(srcdc);
dc.SelectObject(bitmap);
ShowWindow(SW_HIDE);
::PostMessage(m_srchWnd,WM_PAINT,0,0); //告诉游戏窗口重绘
Sleep(100);

本文介绍了一个QQ找茬辅助器的实现过程,包括获取游戏窗口图片、对比两图找出不同并用红色标记,以及模拟点击游戏窗口的步骤。虽然未能实现自动切换和点击,但已展现出基本功能。

9048

被折叠的 条评论
为什么被折叠?



