浏览代码

添加配置文件,记录公共信息;添加小窗口下的按键处理。

Jeff 5 年之前
父节点
当前提交
bea51631e9

+ 5 - 5
GameAssist/GameAssist/Assist.h

@@ -6,16 +6,16 @@
 
 namespace GAssist
 {
-	const TCHAR g_szGamePath[MAX_PATH] = _T("D:\\tools\\dhsh\\shdata\\Main.exe");
+	const TCHAR g_szGamePath[MAX_PATH] = _T("E:\\dhsh\\shdata\\Main.exe");
 	extern DWORD FindProcess(IN LPCSTR lpProName);
 	extern HWND GetProHwnd(DWORD dwProcessId);
 	extern BOOL CALLBACK EnumChildWindowCallBack(HWND hWnd, LPARAM lParam);
 
 	typedef struct __GAME_HWNINFO__{
-		DWORD			dwId;
-		std::string		strWinText;
-		std::string		strClassName;
-		HWND			hwnd;
+		DWORD			dwId;				// 控件id;
+		std::string		strWinText;			// 控件文本;
+		std::string		strClassName;		// 控件类名;
+		HWND			hwnd;				// 控件句柄;
 	}GameHwnd, *pGameHwnd;
 
 	extern std::vector<GameHwnd> g_vtGameHwnd;

+ 13 - 0
GameAssist/GameAssist/Assist.ini

@@ -0,0 +1,13 @@
+[Assist]
+;·¾¶
+GamePath=D:\tools\dhsh\shdata\
+GameApp=D:\tools\dhsh\shdata\Main.exe
+
+[WinInfo]
+;E:\dhsh\shdata\save\config.ini
+;С´°¿Ú640x480
+SmallWnd=808,636
+;´ó´°¿Ú800x600
+LargeWnd=
+;È«ÆÁ
+FullWnd=

+ 4 - 0
GameAssist/GameAssist/GameAssist.vcproj

@@ -255,6 +255,10 @@
 			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
 			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
 			>
+			<File
+				RelativePath=".\Assist.ini"
+				>
+			</File>
 			<File
 				RelativePath=".\res\GameAssist.ico"
 				>

+ 30 - 4
GameAssist/GameAssist/GameAssistDlg.cpp

@@ -163,7 +163,7 @@ void CGameAssistDlg::OnBnClickedOpengame()
 	}
 
 	// 设置辅助程序工作目录为游戏目录;
-	SetCurrentDirectory(_T("D:\\tools\\dhsh\\shdata\\"));
+	SetCurrentDirectory(_T("E:\\dhsh\\shdata\\"));
 #if 1
 	ShellExecute(NULL, "open", GAssist::g_szGamePath, NULL, NULL, SW_SHOWNORMAL);//SW_HIDE无用,因为会自动结;
 	Sleep(500); // Main.exe设置了陷阱(自己再开启了一个进程,结束上一个进程),需要等5秒;
@@ -233,10 +233,12 @@ void CGameAssistDlg::OnBnClickedOpengame()
 			::SendMessage(gp->hwnd,WM_COMMAND,gbentry->dwId,NULL);
 
 
-			Sleep(1200);
+			Sleep(1500);
 			dwPID = GAssist::FindProcess(_T("Game.exe"));
 			if ( dwPID )
 			{
+				GAssist::g_vtGameHwnd.clear();
+				EnumWindows(GAssist::EnumChildWindowCallBack, dwPID);
 				HWND hwnd = GAssist::GetProHwnd(dwPID);
 				if ( hwnd )
 				{
@@ -247,7 +249,7 @@ void CGameAssistDlg::OnBnClickedOpengame()
 					TCHAR szLogMsg[MAX_PATH] = {0};
 					_stprintf_s(szLogMsg, _T("窗口标题:%s, [%d,%d, %d,%d], width=%d, height=%d\n"), szName, rc.top, rc.left, rc.right, rc.bottom, rc.Width(), rc.Height());
 					OutputDebugString(szLogMsg);
-#if 1
+#if 0	// 800x600
 					// 发送按钮消息;进入游戏;
 					::SendMessage(hwnd, WM_LBUTTONDOWN, 0, MAKELPARAM(585, 116));
 					::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(585, 116));
@@ -267,7 +269,31 @@ void CGameAssistDlg::OnBnClickedOpengame()
 					// 发送按钮消息;下一步;
 					::SendMessage(hwnd, WM_LBUTTONDOWN, 0, MAKELPARAM(559, 516));
 					::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(559, 516));
-#else
+#endif
+
+#if 1	// 640x480
+					// 发送按钮消息;进入游戏;
+					::SendMessage(hwnd, WM_LBUTTONDOWN, 0, MAKELPARAM(440, 75));
+					::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(440, 75));
+
+					// 发送按钮消息;下一步;
+					::SendMessage(hwnd, WM_LBUTTONDOWN, 0, MAKELPARAM(468, 454));
+					::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(468, 454));
+
+					// 发送按钮消息;电信一区;
+					::SendMessage(hwnd, WM_LBUTTONDOWN, 0, MAKELPARAM(165, 241));
+					::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(165, 241));
+
+					// 发送按钮消息;忘忧谷;
+					::SendMessage(hwnd, WM_LBUTTONDOWN, 0, MAKELPARAM(289, 195));
+					::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(289, 195));
+
+					// 发送按钮消息;下一步;
+					::SendMessage(hwnd, WM_LBUTTONDOWN, 0, MAKELPARAM(494, 469));
+					::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(494, 469));
+#endif
+
+#if 0
 					// 发送按钮消息;
 					::SendMessage(hwnd, WM_LBUTTONDBLCLK, 0, MAKELPARAM(585, 116));