Jelajahi Sumber

游戏窗口要触发:单击效果,窗口必须设置为顶层窗口;同时,拖动鼠标的效果没能完成,估计也是要顶层同时要SetCurPos等辅助才行。

sat23 5 tahun lalu
induk
melakukan
80cd264504

+ 8 - 6
GameAssist/GameAssist/Assist.cpp

@@ -183,9 +183,11 @@ namespace GAssist
 	{
 		if ( !IsWindow(hwnd) )
 			return;
-
-		::SendMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(pt.x, pt.y));
-		::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(pt.x, pt.y));
+		
+		::SetForegroundWindow(hwnd); // 窗口前置才能单击成功;
+		::PostMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(pt.x, pt.y));
+		::PostMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(pt.x, pt.y));
+		OutputDebugString(_T("-------------------发送MouseClick\n"));
 		Sleep(200);
 	}
 
@@ -266,11 +268,11 @@ namespace GAssist
 		::SendMessage(hwnd, WM_MOUSEMOVE, 0, MAKELPARAM(ptEnd.x, ptEnd.y));
 		Sleep(200);
 #else
-		::SendMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(ptStart.x, ptStart.y));
+		::PostMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(ptStart.x, ptStart.y));
 
-		::SendMessage(hwnd, WM_MOUSEMOVE, 0, MAKELPARAM(ptEnd.x, ptEnd.y));
+		::PostMessage(hwnd, WM_MOUSEMOVE, MK_LBUTTON, MAKELPARAM(ptEnd.x, ptEnd.y));
 
-		::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(ptEnd.x, ptEnd.y));
+		::PostMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(ptEnd.x, ptEnd.y));
 #endif
 	}
 

+ 8 - 3
GameAssist/GameAssist/GameAssistDlg.cpp

@@ -173,7 +173,7 @@ void CGameAssistDlg::OnBnClickedOpengame()
  	GAssist::MouseMove(hProWnd, CPoint(100,100), CPoint(350,350));
 #endif
 
-	if (1)
+	if (0)
 	{
 		Sleep(1000);
 		GAssist::MouseClick(hProWnd, CPoint(205,150));
@@ -184,8 +184,13 @@ void CGameAssistDlg::OnBnClickedOpengame()
 		Sleep(1000);
 		GAssist::MouseClick(hProWnd, CPoint(275,150));
 	}
-	//Sleep(1000);
-	//GAssist::DragMouse(hProWnd, CPoint(205,150), CPoint(295,150));
+
+	if (1)
+	{
+		Sleep(5000);
+		::SetForegroundWindow(hProWnd);
+		GAssist::DragMouse(hProWnd, CPoint(243,138), CPoint(295,190));
+	}
 
 	RECT rc = {0,0,500,500};
 	HBITMAP hb = GAssist::CopyDC2Bitmap(hProWnd, &rc);