123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- #include "stdafx.h"
- #include "OGCAssistTool.h"
- #include "OGCAssistToolDlg.h"
- #include "PageDebug.h"
- #include "PageLog.h"
- #include "PageConfig.h"
- #include "PageStatistics.h"
- #include "Injection.h"
- #include "DlgLogin.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- CInjection g_Injection;
- HWND g_hWnd_SN = NULL;
- HWND g_hWnd_SN_Combobox = NULL;
- HWND g_hWnd_Tester = NULL;
- HWND g_hWnd_FWVersion = NULL;
- HWND g_hWnd_Channel = NULL;
- class CAboutDlg : public CDialogEx
- {
- public:
- CAboutDlg();
- enum { IDD = IDD_ABOUTBOX };
- protected:
- virtual void DoDataExchange(CDataExchange* pDX);
- protected:
- DECLARE_MESSAGE_MAP()
- };
- CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
- {
- }
- void CAboutDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialogEx::DoDataExchange(pDX);
- }
- BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
- END_MESSAGE_MAP()
- COGCAssistToolDlg::COGCAssistToolDlg(CWnd* pParent )
- : CDialogEx(COGCAssistToolDlg::IDD, pParent)
- {
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- }
- void COGCAssistToolDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialogEx::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_TAB, m_tabCtrl);
- }
- BEGIN_MESSAGE_MAP(COGCAssistToolDlg, CDialogEx)
- ON_WM_SYSCOMMAND()
- ON_WM_PAINT()
- ON_WM_QUERYDRAGICON()
-
- ON_NOTIFY(TCN_SELCHANGE, IDC_TAB, &COGCAssistToolDlg::OnTcnSelchangeTab)
- ON_WM_TIMER()
- END_MESSAGE_MAP()
- BOOL COGCAssistToolDlg::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
-
-
- ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
- ASSERT(IDM_ABOUTBOX < 0xF000);
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu != NULL)
- {
- BOOL bNameValid;
- CString strAboutMenu;
- bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
- ASSERT(bNameValid);
- if (!strAboutMenu.IsEmpty())
- {
- pSysMenu->AppendMenu(MF_SEPARATOR);
- pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
- }
- }
-
-
- SetIcon(m_hIcon, TRUE);
- SetIcon(m_hIcon, FALSE);
-
-
-
- if ( GLOBAL::g_config.nOffline )
- {
- }
- InitTabCtrl();
- SetTimer(0, 300, NULL);
- GLOBAL::g_IOCP.Start();
- return TRUE;
- }
- void COGCAssistToolDlg::OnSysCommand(UINT nID, LPARAM lParam)
- {
- if ((nID & 0xFFF0) == IDM_ABOUTBOX)
- {
- CAboutDlg dlgAbout;
- dlgAbout.DoModal();
- }
- else
- {
- CDialogEx::OnSysCommand(nID, lParam);
- }
- }
- void COGCAssistToolDlg::OnPaint()
- {
- if (IsIconic())
- {
- CPaintDC dc(this);
- SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
-
- int cxIcon = GetSystemMetrics(SM_CXICON);
- int cyIcon = GetSystemMetrics(SM_CYICON);
- CRect rect;
- GetClientRect(&rect);
- int x = (rect.Width() - cxIcon + 1) / 2;
- int y = (rect.Height() - cyIcon + 1) / 2;
-
- dc.DrawIcon(x, y, m_hIcon);
- }
- else
- {
- CDialogEx::OnPaint();
- }
- }
- HCURSOR COGCAssistToolDlg::OnQueryDragIcon()
- {
- return static_cast<HCURSOR>(m_hIcon);
- }
- void COGCAssistToolDlg::InitTabCtrl()
- {
- static CFont font;
- VERIFY(font.CreateFont(
- 39,
- 0,
- 0,
- 0,
- FW_NORMAL,
- FALSE,
- FALSE,
- 0,
- ANSI_CHARSET,
- OUT_DEFAULT_PRECIS,
- CLIP_DEFAULT_PRECIS,
- DEFAULT_QUALITY,
- DEFAULT_PITCH | FF_SWISS,
- _T("Arial")));
- m_tabCtrl.SetFont(&font);
- m_ImageList.Create(IDB_TAB, 32, 1, RGB(255,255,255) );
- m_tabCtrl.SetImageList(&m_ImageList);
- m_tabCtrl.InsertItem(0, _T("调试"));
- m_tabCtrl.InsertItem(1, _T("日志"));
- m_tabCtrl.InsertItem(2, _T("统计"));
- m_tabCtrl.InsertItem(3, _T("设置"));
- TC_ITEM tcItem;
- tcItem.mask = TCIF_IMAGE;
- for( int i = 0; i < 4; i++ )
- {
- tcItem.iImage = i;
- m_tabCtrl.SetItem( i, &tcItem );
- }
-
- CRect rcWnd;
- m_tabCtrl.GetWindowRect(&rcWnd);
- int nCount = m_tabCtrl.GetItemCount();
-
- CSize size(rcWnd.Width()/nCount-1, 80), sizeReturn;
- sizeReturn = m_tabCtrl.SetItemSize(size);
-
- CPageDebug *pDlgDebug = new CPageDebug();
- pDlgDebug->Create(PAGE_DEBUG, &m_tabCtrl);
- m_pDialog[0] = pDlgDebug;
- CPageLog* pDlgLog = new CPageLog();
- pDlgLog->Create(PAGE_LOG, &m_tabCtrl);
- m_pDialog[1] = pDlgLog;
- CPageStatistics *pDlgStatistics = new CPageStatistics();
- pDlgStatistics->Create(PAGE_STATISTICS, &m_tabCtrl);
- m_pDialog[2] = pDlgStatistics;
- CPageConfig *pDlgConfig = new CPageConfig();
- pDlgConfig->Create(PAGE_CONFIG, &m_tabCtrl);
- m_pDialog[3] = pDlgConfig;
-
- CRect rcClient;
- m_tabCtrl.GetClientRect(rcClient);
- rcClient.top += 82;
- pDlgDebug->MoveWindow(&rcClient);
- pDlgDebug->ShowWindow(SW_SHOW);
- pDlgLog->MoveWindow(&rcClient);
- pDlgLog->ShowWindow(SW_HIDE);
- pDlgConfig->MoveWindow(&rcClient);
- pDlgConfig->ShowWindow(SW_HIDE);
- pDlgStatistics->MoveWindow(&rcClient);
- pDlgStatistics->ShowWindow(SW_HIDE);
-
- m_tabCtrl.SetCurSel(m_CurSelTab=0);
- }
- HWND COGCAssistToolDlg::MyFindWindow(LPCTSTR lpClassName)
- {
- HWND hWnd = NULL;
- if ( lpClassName == NULL || lpClassName[0] == '\0' )
- return hWnd;
- for (std::vector<GLOBAL::WND_INFO>::iterator it = GLOBAL::g_procWndInfo.vtWndInfo.begin(); it != GLOBAL::g_procWndInfo.vtWndInfo.end(); it++ )
- {
-
- if ( _tcscmp(lpClassName, it->szClassName) == 0 )
- {
- hWnd = it->hWnd;
- break;
- }
- }
- return hWnd;
- }
- void COGCAssistToolDlg::FetchOGCWnd()
- {
-
- for(std::vector<GLOBAL::WND_INFO>::iterator it = GLOBAL::g_procWndInfo.vtWndInfo.begin(); it != GLOBAL::g_procWndInfo.vtWndInfo.end(); it++ )
- {
- if ( _tcscmp(_T("TfrmDemo"), it->szClassName) == 0 )
- {
- g_hWnd_SN_Combobox = (++it)->hWnd;
- break;
- }
- }
-
- for(std::vector<GLOBAL::WND_INFO>::iterator it = GLOBAL::g_procWndInfo.vtWndInfo.begin(); it != GLOBAL::g_procWndInfo.vtWndInfo.end(); it++ )
- {
- if ( !_tcscmp(_T("OCC"), it->szWndTitle) && !_tcscmp(_T("TCheckBox"), it->szClassName) )
- {
- g_hWnd_SN = (--it)->hWnd;
- g_hWnd_Tester = (--it)->hWnd;
- break;
- }
- }
-
- for(std::vector<GLOBAL::WND_INFO>::iterator it = GLOBAL::g_procWndInfo.vtWndInfo.begin(); it != GLOBAL::g_procWndInfo.vtWndInfo.end(); it++ )
- {
- if ( !_tcscmp(_T("Connect CA310"), it->szWndTitle) && !_tcscmp(_T("TButton"), it->szClassName) )
- {
- g_hWnd_Channel = (--it)->hWnd;
- break;
- }
- }
-
- for(std::vector<GLOBAL::WND_INFO>::iterator it = GLOBAL::g_procWndInfo.vtWndInfo.begin(); it != GLOBAL::g_procWndInfo.vtWndInfo.end(); it++ )
- {
- if ( !_tcscmp(_T("FS2"), it->szWndTitle) && !_tcscmp(_T("TCheckBox"), it->szClassName) )
- {
- g_hWnd_FWVersion = (--it)->hWnd;
- break;
- }
- }
- #ifdef _DEBUG
- TCHAR szMsg[MAX_PATH] = {0};
-
- _stprintf(szMsg, _T("Channel=%ld, SN=%ld, Combobox=%ld, Tester=%ld, FWVersion=%ld\n"), g_hWnd_Channel, g_hWnd_SN, g_hWnd_SN_Combobox, g_hWnd_Tester, g_hWnd_FWVersion);
-
- GLOBAL::WriteTextLog(szMsg);
- #endif
- }
- void COGCAssistToolDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
- {
-
- m_pDialog[m_CurSelTab]->ShowWindow(SW_HIDE);
-
- m_CurSelTab = m_tabCtrl.GetCurSel();
- if ( m_CurSelTab == 3 )
- {
- #pragma region 登录对话框;
- CDlgLogin LoginDlg;
- LoginDlg.SetConfigLogin();
- if ( LoginDlg.DoModal() != IDOK )
- {
- return;
- }
- #pragma endregion
- }
-
- m_pDialog[m_CurSelTab]->ShowWindow(SW_SHOW);
- m_pDialog[m_CurSelTab]->UpdateData(TRUE);
- *pResult = 0;
- }
- BOOL COGCAssistToolDlg::DestroyWindow()
- {
-
- for ( int i = 0; i < 4; i++ )
- {
- delete m_pDialog[i];
- m_pDialog[i] = NULL;
- }
- return CDialogEx::DestroyWindow();
- }
- void COGCAssistToolDlg::OnTimer(UINT_PTR nIDEvent)
- {
-
- switch (nIDEvent)
- {
- case 0:
- {
-
- if ( FindWindow(_T("TApplication"), _T("Demo")) && FindWindow(_T("TfrmDemo"), _T("(TPV 2021/09/29) UHD Series OGC Tool V2.21.1.3")) )
- {
- Sleep(1200);
- GLOBAL::EnumProcessAllWnd(&GLOBAL::g_procWndInfo);
- if ( !GLOBAL::g_bInjected )
- {
- TCHAR szDll[MAX_PATH] = {0};
- _stprintf(szDll, _T("%s%s"), GLOBAL::g_szModulePath, _T("OGCAssist.dll"));
- g_Injection.setInjectionObj(GLOBAL::g_procWndInfo.dwProcId, szDll);
-
- if ( GLOBAL::GetModulePath(_T("OGCAssist.dll"), GLOBAL::g_procWndInfo.dwProcId) )
- {
- GLOBAL::g_bInjected = TRUE;
- }
- else
- {
- GLOBAL::g_bInjected = g_Injection.InjectDynamicLibrary();
- }
- }
-
- FetchOGCWnd();
-
- GLOBAL::g_IOCP.SetMainDlg(this);
-
- ((CPageDebug*)m_pDialog[0])->ShowOGCWnd(SW_HIDE);
- KillTimer(nIDEvent);
- }
- }
- break;
- default:
- break;
- }
- CDialogEx::OnTimer(nIDEvent);
- }
- void COGCAssistToolDlg::OnOK()
- {
-
-
- }
|