OGCAssistTool.cpp 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. // OGCAssistTool.cpp : 定义应用程序的类行为。
  2. //
  3. #include "stdafx.h"
  4. #include "OGCAssistTool.h"
  5. #include "OGCAssistToolDlg.h"
  6. #include "DlgLogin.h"
  7. #ifdef _DEBUG
  8. #include "MESdb.h"
  9. #endif
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #endif
  13. INT StartOGCTool()
  14. {
  15. INT nRet = 0;
  16. DWORD dwProcId = 0;
  17. if ( 0 == ( dwProcId = GLOBAL::FindProcess(_T("Demo.exe"))) )
  18. {
  19. // 没有找到目标进程,启动;
  20. if ( !GLOBAL::StartProcess(GLOBAL::g_config.szOGCToolProgram) )
  21. {
  22. // 新开失败;
  23. MessageBox(NULL, _T("启动进程失败"), _T("错误!"), MB_ICONERROR);
  24. return 0;
  25. }
  26. nRet = 1; // 进程新开;
  27. }
  28. else
  29. {
  30. TCHAR szModulPath[MAX_PATH] = {0};
  31. _stprintf(szModulPath, _T("%s"), GLOBAL::GetModulePath(_T("Demo.exe"), dwProcId));
  32. if ( _tcsicmp(szModulPath, GLOBAL::g_config.szOGCToolProgram) != 0 )
  33. {
  34. TCHAR szMsg[1024] = {0};
  35. _stprintf_s(szMsg,
  36. _T("存在同名进程,目录非指定路径,请手动关闭非目标路径程序")
  37. _T("\n\n当前进程路径:%s\n\n正确进程路径:%s\n\n")
  38. _T("是:关闭当前进程并启动目标进程\n")
  39. _T("否:不关闭当前进程,退出操作\n")
  40. _T("取消:不关闭当前进程,启动目标进程\n"),
  41. szModulPath,
  42. GLOBAL::g_config.szOGCToolProgram);
  43. INT nChoose = MessageBox(NULL, szMsg, _T("错误,存在同名进程!"), MB_ICONERROR|MB_YESNOCANCEL);
  44. if ( nChoose == IDNO )
  45. {
  46. // 退出新开;
  47. return -1;
  48. }
  49. else if ( nChoose == IDYES )
  50. {
  51. // 关闭当前进程;
  52. HANDLE token = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcId);
  53. TerminateProcess(token, 0);
  54. }
  55. if ( !GLOBAL::StartProcess(GLOBAL::g_config.szOGCToolProgram) )
  56. {
  57. // 新开失败;
  58. MessageBox(NULL, _T("启动进程失败"), _T("错误!"), MB_ICONERROR);
  59. return 0;
  60. }
  61. nRet = 1;
  62. }
  63. else
  64. {
  65. nRet = 2;
  66. GLOBAL::g_procWndInfo.dwProcId = dwProcId;
  67. }
  68. }
  69. // 新开进程标记未注入;
  70. if ( nRet == 1 )
  71. GLOBAL::g_bInjected = FALSE;
  72. return nRet;
  73. }
  74. // COGCAssistToolApp
  75. BEGIN_MESSAGE_MAP(COGCAssistToolApp, CWinAppEx)
  76. ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
  77. END_MESSAGE_MAP()
  78. // COGCAssistToolApp 构造
  79. COGCAssistToolApp::COGCAssistToolApp()
  80. {
  81. // TODO: 在此处添加构造代码,
  82. // 将所有重要的初始化放置在 InitInstance 中
  83. #ifndef _DEBUG
  84. if ( CMESdb::GetInstance() )
  85. {
  86. TString strSN, strBom;
  87. CMESdb::GetInstance()->GetBomFromSN(_T("DGG75087802107000636"), strBom);
  88. std::map<TString, TString> data1;
  89. CMESdb::GetInstance()->SetConnection(2);
  90. CMESdb::GetInstance()->Query(_T("select count(1) from tvinfo where tvsn='(01)01003004300020(17)190730(21)S00001'"), data1);
  91. TString data;
  92. CMESdb::GetInstance()->GetProcessCode(data);
  93. CMESdb::GetInstance()->GetCompanyCode(data, _T("T304"));
  94. if ( CMESdb::GetInstance()->IsExitTVSN(_T("(01)01003004300020(17)190730(21)S00001")) )
  95. {
  96. int a = 0;
  97. CMESdb::GetInstance()->GetNextProcessCode(_T("(01)01003004300020(17)190730(21)S00001"), data);
  98. CMESdb::GetInstance()->Scan(_T("TEST-S00001"), _T("T306"), _T("36"), _T("Moka"), _T("192.168.1.1"), _T("PE"), _T("PE"), _T(""), data);
  99. }
  100. }
  101. #endif
  102. }
  103. // 唯一的一个 COGCAssistToolApp 对象
  104. COGCAssistToolApp theApp;
  105. // COGCAssistToolApp 初始化
  106. BOOL COGCAssistToolApp::InitInstance()
  107. {
  108. // 如果一个运行在 Windows XP 上的应用程序清单指定要
  109. // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
  110. //则需要 InitCommonControlsEx()。否则,将无法创建窗口。
  111. INITCOMMONCONTROLSEX InitCtrls;
  112. InitCtrls.dwSize = sizeof(InitCtrls);
  113. // 将它设置为包括所有要在应用程序中使用的
  114. // 公共控件类。
  115. InitCtrls.dwICC = ICC_WIN95_CLASSES;
  116. InitCommonControlsEx(&InitCtrls);
  117. CWinAppEx::InitInstance();
  118. AfxEnableControlContainer();
  119. // 标准初始化
  120. // 如果未使用这些功能并希望减小
  121. // 最终可执行文件的大小,则应移除下列
  122. // 不需要的特定初始化例程
  123. // 更改用于存储设置的注册表项
  124. // TODO: 应适当修改该字符串,
  125. // 例如修改为公司或组织名
  126. SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
  127. // 启动日志;
  128. char szCfgPath[MAX_PATH] = {0};
  129. GetCurrentDirectoryA(MAX_PATH, szCfgPath);
  130. sprintf_s(szCfgPath, "%s\\log4z.cfg", szCfgPath);
  131. ILog4zManager::getRef().config(szCfgPath);
  132. ILog4zManager::getRef().start();
  133. LOGI("OGC辅助程序启动 ");
  134. MTVERIFY(GLOBAL::GetConfigInfo());
  135. GLOBAL::g_db.Open();
  136. #if 0
  137. TB_ORDER order;
  138. std::vector<TB_ORDER> vtOrder;
  139. GLOBAL::g_db.QueryOrder("3322", order);
  140. GLOBAL::g_db.InsertOrder("5555", "DeltaE00", "3.6", 1);
  141. GLOBAL::g_db.UpdateOrder("5555", "DeltaE98", "1.02", 1);
  142. GLOBAL::g_db.InsertSN("5555", "T302", "dfdfdf", "2022-03-19 09:25:19", "2022-03-19 09:25:59", 25532, 1, 3.2, 2.0, "");
  143. GLOBAL::g_db.UpdateSNData("5555", "dfdfdf", "T302", "2022-03-19 09:25:19", "2022-03-19 09:25:59", 25532, 1, 3.2, 2.0, "3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n");
  144. GLOBAL::g_db.QueryOrders(vtOrder, "2022-04-01 02:25:19", "2022-04-21 02:25:19");
  145. TCHAR szCSV[MAX_PATH] = {0};
  146. _tcscat_s(szCSV, _T("F:\\cfg\\bin\\OGCAssistTool\\OGC_Tool_V2.21.1.3_210929\\Output\\sRGB_32Patterns_.csv"));
  147. std::string strFileData = GLOBAL::GetFileData(szCSV);
  148. std::string strFindString = "\r\n";
  149. std::vector<std::string> vtString;
  150. GLOBAL::GetStringList(strFileData, strFindString, vtString);
  151. std::vector<GLOBAL::RGB_PAT> vtRGB;
  152. GLOBAL::CheckOutData(vtString, vtRGB);
  153. GLOBAL::IsDebugPass(vtRGB, 0, 1.3);
  154. #endif
  155. #pragma region 打开目标进程;
  156. if ( StartOGCTool() < 0 )
  157. return FALSE;
  158. #pragma endregion
  159. #pragma region 登录对话框;
  160. CDlgLogin LoginDlg;
  161. if ( LoginDlg.DoModal() != IDOK )
  162. {
  163. return FALSE;
  164. }
  165. #pragma endregion
  166. COGCAssistToolDlg dlg;
  167. m_pMainWnd = &dlg;
  168. INT_PTR nResponse = dlg.DoModal();
  169. if (nResponse == IDOK)
  170. {
  171. // TODO: 在此放置处理何时用
  172. // “确定”来关闭对话框的代码
  173. }
  174. else if (nResponse == IDCANCEL)
  175. {
  176. // TODO: 在此放置处理何时用
  177. // “取消”来关闭对话框的代码
  178. }
  179. // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
  180. // 而不是启动应用程序的消息泵。
  181. return FALSE;
  182. }