예제 #1
0
CPoint CAutoBrowser::GetRandPointInRect(CRect rcElem)
{
	CPoint ptRand;
	ptRand.x = GetRandValue(rcElem.left+1,rcElem.right-1);
	ptRand.y = GetRandValue(rcElem.top+1,rcElem.bottom-1);
	return ptRand;
}
예제 #2
0
BOOL CAutoBrowser::ClickRandMatchWebPageElement(CElementInformation *pElemInfo)
{
	CElemRectList ElemList;
	BOOL bRes = GetAllMatchElemRect(&ElemList,pElemInfo);
	if (bRes)
	{
		int nMatchCount = ElemList.GetElemRectCount();
		int nSelect = GetRandValue(0,nMatchCount-1);

		ELEM_RECT ElemRect;
		bRes = ElemList.GetElemRectByIndex(nSelect,&ElemRect);
		if (bRes)
		{
			CRect rcElem;
			rcElem = ElemRect.rcElem;
			CPoint ptElemCenter;
			ptElemCenter = rcElem.CenterPoint();

			CRect rcIEWin;
			::GetClientRect(m_hIEServer,&rcIEWin);

			if (PtInRect(&rcIEWin,ptElemCenter) == FALSE)
			{
				//通过操作滚动条,尽可能的将要点击的元素移动的窗口的中间
				int ScrollX = ptElemCenter.x-rcIEWin.Width()/2;
				int ScrollY = ptElemCenter.y-rcIEWin.Height()/2;

				LONG nCurScrollX = 0;
				LONG nCurScrollY = 0;
				
				GetWebWindowScroll(&nCurScrollX,&nCurScrollY);
				
				ScrollY = nCurScrollY + ScrollY;

				ScrollWebWindowTo(ScrollX,ScrollY);
				
				CComQIPtr<IHTMLElement> pqElem(ElemRect.pElem);
				GetVisibleElemRect(pqElem,rcElem);

				//ptElemCenter = rcElem.CenterPoint();
			}
			
			ptElemCenter = GetRandPointInRect(rcElem);

			bRes = PtInRect(&rcIEWin,ptElemCenter);

			if (bRes)
			{
				ClickWebPagePoint(ptElemCenter.x,ptElemCenter.y);
			}

		}

	}

	return bRes;

}
예제 #3
0
void Items::GenerateItemNow( Vector2D pos, Vector2D vel )
{
	if( pos.getX() < 10 ) pos.setX( 10.f );
	if( pos.getX() > m_iScreenWidth-10 ) pos.setX( m_iScreenWidth-10.f );
	if( pos.getY() < 100 && vel.getY() < 5 ) vel.setY( 5 );

	int itemType = GetRandValue( ITEM_APPEAR_CHANCES, NR_ITEM_TYPES );
	Item *item = new Item( pos, vel, (ItemTypes)itemType, m_iItemLifeTime, m_iScreenWidth );
	AddItem( item );
}
예제 #4
0
CString GetRandPhoneUserAgent()
{
	LPCWSTR pArrayPhoneUserAgent[]={
		// 	L"Mozilla/5.0 (iPad;  CPU OS 4_2 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8C134",
		// 		L"Mozilla/5.0 (iPad;  CPU OS 4_3 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8F190 Safari/6533.18.5",
		// 		L"Mozilla/5.0 (iPad;  CPU OS 4_3_1 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8G4 Safari/6533.18.5",
		// 		L"Mozilla/5.0 (iPad;  CPU OS 4_3_2 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5",
		// 		L"Mozilla/5.0 (iPad;  CPU OS 4_3_3 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
		// 		L"Mozilla/5.0 (iPad;  CPU OS 4_3_4 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8K2 Safari/6533.18.5",
		// 		L"Mozilla/5.0 (iPad;  CPU OS 4_3_5 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5",
		// 		L"Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3",
		// 		L"Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
		// 		L"Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25",
		// 		L"Mozilla/5.0 (Linux;  Android 2.1-update1; SonyEricssonSO-01B Build/2.0.2.B.0.29) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17",
		// 		L"Mozilla/5.0 (Linux;  Android 2.2.1; Full Android Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 2.2.1; IS03 Build/S9090) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 2.3.3; SC-02C Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 2.3.3; INFOBAR A01 Build/S9081) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 2.3.3; 001HT Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 2.3.3; SonyEricssonX10i Build/3.0.1.G.0.75) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 2.3.4; SonyEricssonIS11S Build/4.0.1.B.0.112) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 2.3.4; IS05 Build/S9290) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 2.3.5; F-05D Build/F0001) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 2.3.5; T-01D Build/F0001) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 3.0.1; MZ604 Build/H.6.2-20) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
		// 		L"Mozilla/5.0 (Linux;  Android 3.1; en-us; K1 Build/HMJ37) AppleWebKit/534.13(KHTML, like Gecko) Version/4.0 Safari/534.13",
		// 		L"Mozilla/5.0 (Linux;  Android 3.1; AT100 Build/HMJ37) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
		// 		L"Mozilla/5.0 (Linux;  Android 3.1; Sony Tablet S Build/THMAS10000) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
		// 		L"Mozilla/5.0 (Linux;  Android 3.2; SC-01D Build/MASTER) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
		// 		L"Mozilla/5.0 (Linux;  Android 3.2; AT1S0 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
		// 		L"Mozilla/5.0 (Linux;  Android 3.2; F-01D Build/F0001) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
		// 		L"Mozilla/5.0 (Linux;  Android 3.2; Sony Tablet S Build/THMAS11000) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
		// 		L"Mozilla/5.0 (Linux;  Android 3.2; A01SH Build/HTJ85B) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1",
		// 		L"Mozilla/5.0 (Linux;  Android 3.2.1; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
		L"Mozilla/5.0 (Linux; Android 4.0.1; Galaxy Nexus Build/ITL41D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
		L"Mozilla/5.0 (Linux; Android 4.0.3; URBANO PROGRESSO Build/010.0.3000) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
		L"Mozilla/5.0 (Linux; Android 4.0.3; Sony Tablet S Build/TISU0R0110) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
		L"Mozilla/5.0 (Linux; Android 4.0.4; SC-06D Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
		L"Mozilla/5.0 (Linux; Android 4.1.1; Galaxy Nexus Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
		L"Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03S) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19",
		//L"Opera/9.80 (Android 2.3.3; Linux; Opera Mobi/ADR-1111101157;  ja) Presto/2.9.201 Version/11.50",
		//L"Opera/9.80 (Android 3.2.1; Linux; Opera Tablet/ADR-1109081720;  ja) Presto/2.8.149 Version/11.10",
		//L"Mozilla/5.0 (Android; Linux armv7l; rv:9.0) Gecko/20111216 Firefox/9.0 Fennec/9.0",
		//L"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; KDDI-TS01; Windows Phone 6.5.3.5)",
		//L"Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; FujitsuToshibaMobileCommun; IS12T; KDDI)"
	};


	int nCount = _countof(pArrayPhoneUserAgent);

	return pArrayPhoneUserAgent[GetRandValue(0,nCount-1)];
}
예제 #5
0
BOOL CAutoBrowser::ScrollWebWindowTo(LONG X,LONG Y)
{
	CComQIPtr<IWebBrowser> pWb(m_pWebBrowser);
	if (pWb)
	{
		//IHTMLWindow2
		CComQIPtr<IHTMLDocument2> pDoc2;
		pWb->get_Document((IDispatch **)&pDoc2);
		if (pDoc2)
		{
			CComQIPtr<IHTMLWindow2> pWin2;
			pDoc2->get_parentWindow(&pWin2);
			if (pWin2)
			{

				LONG CurX = 0;
				LONG CurY = 0;
				BOOL bRes = GetWebWindowScroll(&CurX,&CurY);
				if (bRes)
				{
					//先滚动Y轴 竖着的
					if(Y > CurY) //向下滚动
					{
						int n=0;
						for (int i=CurY;i<=Y;i+=120)
						{
							pWin2->scroll(CurX,i);
							n++;
							if ( n%4 == 0 )
							{
								Sleep(GetRandValue(500,1000));
							}
							else
							{
								Sleep(GetRandValue(50,100));
							}
						}
					}
					else //向上滚动
					{
						int n=0;
						for (int i=CurY;i>=Y;i-=120)
						{
							pWin2->scroll(CurX,i);
							n++;
							if ( n%4 == 0 )
							{
								Sleep(GetRandValue(500,1000));
							}
							else
							{
								Sleep(GetRandValue(50,100));
							}
						}
					}

					Sleep(GetRandValue(500,1000));
					pWin2->scroll(CurX,Y);
					
					CurY = Y;

					
					//滚动X轴 横着的
					if(X > CurX) //向左滚动
					{
						int n=0;
						for (int i=CurX;i<=X;i+=120)
						{
							pWin2->scroll(i,CurY);
							n++;
							if ( n%4 == 0 )
							{
								Sleep(GetRandValue(500,1000));
							}
							else
							{
								Sleep(GetRandValue(50,100));
							}
						}
					}
					else //向上滚动
					{
						int n=0;
						for (int i=CurX;i>=X;i-=120)
						{
							pWin2->scroll(i,CurY);
							n++;
							if ( n%4 == 0 )
							{
								Sleep(GetRandValue(500,1000));
							}
							else
							{
								Sleep(GetRandValue(50,100));
							}
						}
					}

					Sleep(GetRandValue(500,1000));
					pWin2->scroll(X,CurY);
	
				}
				else
				{	
					pWin2->scroll(X,Y);
				}
			}
		}
	}
	return TRUE;
}
예제 #6
0
DWORD WINAPI WorkThread(PVOID pParam)
{
	HWND hTopWnd = FindWindow(L"Qt5QWindowIcon",L"夜神安卓模拟器");
	if ( NULL == hTopWnd )
	{
		hTopWnd = FindWindow(L"Qt5QWindowIcon",L"夜神模拟器");
	}

	HWND hWndWork = NULL;
	HWND hSubWin = NULL;
	EnumChildWindows(hTopWnd,MY_WNDENUMPROC,(LPARAM)&hSubWin);

	 hWndWork = GetParent(hSubWin);



	 int nScanR = 150;
	int nScanSpace = 5;
	int nCurAngle = 0;
	int nStartOffset = 10;
	 int nPrintWidth = nScanR*2+10;

	 HDC hScreenDc = GetDC(NULL);
	 HDC hMemDC = CreateCompatibleDC(hScreenDc);
	 HBITMAP hMemBmp = CreateCompatibleBitmap(hScreenDc,nPrintWidth,nPrintWidth);
	 SelectObject(hMemDC,hMemBmp);

	 ReleaseDC(NULL,hScreenDc);

	while (IsWindow(hWndWork))
	{
		CRect rcClient;
		GetClientRect(hWndWork,&rcClient);

		CRect rcWin;
		GetWindowRect(hWndWork,&rcWin);

		CPoint ptCenter;
		ptCenter = rcClient.CenterPoint();

		
		hScreenDc = GetDC(NULL);
		BitBlt(hMemDC,0,0,nPrintWidth,nPrintWidth,hScreenDc,rcWin.left + ptCenter.x - nPrintWidth/2,rcWin.top + ptCenter.y -nPrintWidth/2,SRCCOPY);
		ReleaseDC(NULL,hScreenDc);


		int nX = 0;
		int nY = 0;

		BOOL bAllClearLeft = TRUE;
		for (int i=nStartOffset;i<nScanR;i+=nScanSpace )
		{
			AngleToXY(nCurAngle-4,i,nX,nY);

			COLORREF clrRef = GetPixel(hMemDC,nPrintWidth/2+nX,nPrintWidth/2+nY);
			if ( !CheckBg(clrRef))
			{
				bAllClearLeft = FALSE;
				break;
			}
		}

		BOOL bAllClearRight = TRUE;
		for (int i=nStartOffset;i<nScanR;i+=nScanSpace )
		{
			AngleToXY(nCurAngle+4,i,nX,nY);

			COLORREF clrRef = GetPixel(hMemDC,nPrintWidth/2+nX,nPrintWidth/2+nY);
			if ( !CheckBg(clrRef))
			{
				bAllClearRight = FALSE;
				break;
			}
		}


		if ( !bAllClearLeft || !bAllClearRight )
		{
			while (TRUE)
			{
				int nX = 0;
				int nY = 0;
				int nAngle = GetRandValue( 0 ,359 );

				BOOL bAllClearLeft = TRUE;
				for (int i=nStartOffset;i<nScanR;i+=nScanSpace )
				{
					AngleToXY(nAngle-4,i,nX,nY);

					COLORREF clrRef = GetPixel(hMemDC,nPrintWidth/2+nX,nPrintWidth/2+nY);
					if ( !CheckBg(clrRef))
					{
						bAllClearLeft = FALSE;
						break;
					}
				}

				BOOL bAllClearRight = TRUE;
				for (int i=nStartOffset;i<nScanR;i+=nScanSpace )
				{
					AngleToXY(nAngle+4,i,nX,nY);

					COLORREF clrRef = GetPixel(hMemDC,nPrintWidth/2+nX,nPrintWidth/2+nY);
					if ( !CheckBg(clrRef))
					{
						bAllClearRight = FALSE;
						break;
					}
				}


				if (bAllClearLeft && bAllClearRight)
				{
					nCurAngle = nAngle;
					ChangeMoveAngle(hWndWork,nAngle);
					break;
				}
			}
		}

		Sleep(50);
	}
	

	return 0;
}