JeffWang %!s(int64=3) %!d(string=hai) anos
pai
achega
5decdd64a1

+ 2 - 0
Source/OGCAssist/OGCAssist/OGCAssist.cpp

@@ -4,6 +4,7 @@
 #include "stdafx.h"
 #include "OGCAssist.h"
 #include <process.h>
+#include "Utility.h"
 
 namespace Assist
 {
@@ -231,6 +232,7 @@ namespace Assist
 			goto end;
 
 end:
+		Utility::dprintf(_T("HijackedCall<%s>. GLE=%d\n"), bHijack ? _T("True") : _T("False"), GetLastError() ); 
 		return (bHijacked = bHijack);
 	}
 

+ 4 - 6
Source/OGCAssist/OGCAssist/dllmain.cpp

@@ -6,6 +6,10 @@
 
 DWORD WINAPI WorkThreadProc(LPVOID lParam)
 {
+	Assist::InitCallData();
+	BOOL bInject = Assist::HijackedAllCall();
+	Utility::dprintf(bInject ? _T("劫持成功\n") : _T("劫持失败"));
+
 	// 注入成功后,启动管道进行通信;
 	if ( Utility::g_pPipeClient == NULL )
 	{
@@ -13,12 +17,6 @@ DWORD WINAPI WorkThreadProc(LPVOID lParam)
 		Utility::g_pPipeClient->StartWork();
 	}
 
-	Assist::InitCallData();
-	BOOL bInject = Assist::HijackedAllCall();
-
-	//::MessageBox(NULL, _T("劫持成功"), _T(""), MB_OK);
-	Utility::dprintf(_T("劫持成功\n"));
-
 	WaitForSingleObject(Utility::hWorkThreadProc,INFINITE);
 
 	// 恢复劫持数据;

+ 18 - 0
Source/OGCAssistTool/OGCAssistTool/Global.h

@@ -86,6 +86,24 @@ namespace GLOBAL {
 			return bExist;
 		}
 
+		HWND GetButtonWnd(LPCTSTR lpButtonName)
+		{
+			if ( lpButtonName == NULL || lpButtonName[0] == '\0' )
+				return NULL;
+
+			HWND hWnd = NULL;
+			for ( std::vector<WND_INFO>::iterator it = vtWndInfo.begin(); it != vtWndInfo.end(); it++ )
+			{
+				if ( _tcscmp(it->szWndTitle, lpButtonName) == 0 )
+				{
+					hWnd = it->hWnd;
+					break;
+				}
+			}
+
+			return hWnd;
+		}
+
 		__PROC_WND_INFO__() {
 			dwProcId = 0;
 			bHijackStatus = FALSE;

+ 2 - 3
Source/OGCAssistTool/OGCAssistTool/OGCAssistToolDlg.cpp

@@ -384,6 +384,8 @@ void COGCAssistToolDlg::OnTimer(UINT_PTR nIDEvent)
 				}
 				// 附加窗口句柄;
 				FetchOGCWnd();
+				// 设置句柄;
+				GLOBAL::g_IOCP.SetMainDlg(this);
 
 #pragma region 隐藏窗口;
 				HWND hWnd = NULL;
@@ -394,9 +396,6 @@ void COGCAssistToolDlg::OnTimer(UINT_PTR nIDEvent)
 					::ShowWindow(hWnd, SW_HIDE);
 #pragma endregion
 
-#pragma region 进程通信:请求状态;
-
-#pragma endregion
 				KillTimer(nIDEvent);
 			}			
 		}

+ 18 - 1
Source/OGCAssistTool/OGCAssistTool/PageDebug.cpp

@@ -182,13 +182,30 @@ void CPageDebug::OnBnClickedTest()
 		{
 			AfxGetApp()->GetMainWnd()->SetTimer(0, 500, NULL);
 			MessageBox(_T("OGC程序启动中,请稍后再尝试,谢谢!"), _T("提示"), MB_OK|MB_ICONWARNING);
-			// 向目标发消息,请求获取状态信息;
 		}
 		break;
 	case 2:
 		// 已存在进程;
 		{
+			// 执行Connect按钮;
+			if ( GLOBAL::g_procWndInfo.bHijackStatus && !GLOBAL::g_procWndInfo.bConnectStatus )
+			{
+				HWND hWnd = GLOBAL::g_procWndInfo.GetButtonWnd(_T("Connect CA310"));
+				if ( hWnd )
+				{
+					::PostMessage(hWnd, WM_LBUTTONDOWN, 0, 0);
+					Sleep(20);
+					::PostMessage(hWnd, WM_LBUTTONUP, 0, 0);
+				}
+			}
 
+			// 按钮CheckFW按钮;
+
+			// 设置SN下拉框长度;
+
+			// 设置SN编辑框;
+
+			// 按钮Go按钮;
 		}
 		break;
 	default: