|
@@ -14,6 +14,7 @@ extern HWND g_hWnd_SN_Combobox;
|
|
|
extern HWND g_hWnd_Tester;
|
|
|
extern HWND g_hWnd_FWVersion;
|
|
|
extern HWND g_hWnd_Channel;
|
|
|
+extern BOOL StartOGCTool();
|
|
|
// CDlgDebug 对话框
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CPageDebug, CDialogEx)
|
|
@@ -39,6 +40,9 @@ BEGIN_MESSAGE_MAP(CPageDebug, CDialogEx)
|
|
|
ON_WM_CTLCOLOR()
|
|
|
ON_BN_CLICKED(BTN_SHOW_WND, &CPageDebug::OnBnClickedShowWnd)
|
|
|
ON_BN_CLICKED(BTN_HIDE_WND, &CPageDebug::OnBnClickedHideWnd)
|
|
|
+ ON_BN_CLICKED(CHECK_HIJACK, &CPageDebug::OnBnClickedHijack)
|
|
|
+ ON_BN_CLICKED(CHECK_RESUME_HIJACKING, &CPageDebug::OnBnClickedResumeHijacking)
|
|
|
+ ON_BN_CLICKED(BTN_TEST, &CPageDebug::OnBnClickedTest)
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
@@ -64,6 +68,8 @@ HBRUSH CPageDebug::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
|
|
switch ( pWnd->GetDlgCtrlID() )
|
|
|
{
|
|
|
case CHECK_LOCK:
|
|
|
+ case CHECK_HIJACK:
|
|
|
+ case CHECK_RESUME_HIJACKING:
|
|
|
{
|
|
|
#if 1 // 透明控件处理;
|
|
|
pDC->SetBkMode(TRANSPARENT);
|
|
@@ -142,3 +148,50 @@ void CPageDebug::OnBnClickedHideWnd()
|
|
|
if ( hWnd = MyFindWindow(_T("TApplication")) )
|
|
|
::ShowWindow(hWnd, SW_HIDE);
|
|
|
}
|
|
|
+
|
|
|
+void CPageDebug::OnBnClickedHijack()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+void CPageDebug::OnBnClickedResumeHijacking()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+void CPageDebug::OnBnClickedTest()
|
|
|
+{
|
|
|
+ // 1、执行一次Connect按钮事件;
|
|
|
+ //// 1.1、Connect成功后, 目标进程会返回消息;
|
|
|
+ //// 1.2、若没有消息返回,需要判断是否在程序启动前已注入过并且Connect过。
|
|
|
+ //// 1.3、要避免2的情况,主进程应该每次启动时,都向目标进程发送消息获取按钮状态。
|
|
|
+ // 2、读取SN长度,设置一次SN长度下拉框;
|
|
|
+ // 3、将SN赋值到目标进程SN编辑框;
|
|
|
+ // 4、执行Go函数;
|
|
|
+ // 5、劫持的Go函数未返回消息时,Test按钮和SN编辑框禁止输入;
|
|
|
+ switch ( StartOGCTool() )
|
|
|
+ {
|
|
|
+ case -1:
|
|
|
+ // 退出新开;
|
|
|
+ break;
|
|
|
+ case 0:
|
|
|
+ // 新开失败;
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ // 新开成功;
|
|
|
+ {
|
|
|
+ AfxGetApp()->GetMainWnd()->SetTimer(0, 500, NULL);
|
|
|
+ MessageBox(_T("OGC程序启动中,请稍后再尝试,谢谢!"), _T("提示"), MB_OK|MB_ICONWARNING);
|
|
|
+ // 向目标发消息,请求获取状态信息;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ // 已存在进程;
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|