From ea996431950e6ecff451bd40d1228f51d077475c Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 목, 28 4월 2022 09:22:18 +0900
Subject: [PATCH] Ongoing100 #4086 CF AOI Review FDC SW Version 추가 요청

---
 ReviewSystem/ReviewSystem/ReviewInterface.cpp |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.cpp b/ReviewSystem/ReviewSystem/ReviewInterface.cpp
index a2d3e7d..73bc99f 100644
--- a/ReviewSystem/ReviewSystem/ReviewInterface.cpp
+++ b/ReviewSystem/ReviewSystem/ReviewInterface.cpp
@@ -162,6 +162,8 @@
 {	
 	if (m_pDoc==NULL) return FALSE;
 
+	Start3rdPartyProgram();
+
 	CreateDirectory(_REVIEW_SERVER_BASE_PATH_, NULL);
 	CreateDirectory(_REVIEW_SERVER_LOG_PATH_, NULL);
 	CreateDirectory(_REVIEW_SERVER_CONFIG_PATH_, NULL);
@@ -388,6 +390,8 @@
 	DisconnectReviewCamera();
 	DeinitReviewCamera();
 	m_ProcessTimer.End();
+
+	Terminate3rdPartyProgram();
 	
 	if (m_pView)
 	{
@@ -491,8 +495,6 @@
 
 	DeinitSharedImage();
 	g_pLog->DisplayMessage(_T("Deinit Shared Image"));
-
-
 
 	DeinitTotalPitchMeasure();
 	g_pLog->DisplayMessage(_T("Deinit TotalPitch Measure"));
@@ -720,6 +722,54 @@
 	//Review S/W Version End
 }
 
+/*< LYW 20220426 - #4086 ADD Start >*/
+void CReviewInterface::Start3rdPartyProgram()
+{
+// 	if(StartWindowIDProgram(_T("FTPUploader"), _T("D:\\DIT_3rdParty\\FTPUpload\\FTPUploader.exe")))
+// 		g_pLog->DisplayMessage(_T("FDCFTPUploader Start Success"));
+// 	else g_pLog->DisplayMessage(_T("FDCFTPUploader Start Fail"));
+
+	if (StartWindowIDProgram(_T("Dit Glass Raw Messenger"), _T("D:\\DIT_3rdParty\\GlassRawMessenger\\DitGlassRawMessenger_x64.exe")))
+		g_pLog->DisplayMessage(_T("DitGlassRawMessenger Start Success"));
+	else g_pLog->DisplayMessage(_T("DitGlassRawMessenger Start Fail"));
+}
+
+int CReviewInterface::StartWindowIDProgram(CString WindowID, CString ProgramPath)
+{
+	HWND hWnd = ::FindWindow(NULL, WindowID);
+	if (hWnd == NULL)
+	{
+		if(ShellExecute(hWnd, NULL, ProgramPath, NULL, NULL, SW_SHOWMINIMIZED))
+			return TRUE;
+		else return FALSE;
+	}
+	return TRUE;
+}
+
+void CReviewInterface::Terminate3rdPartyProgram()
+{
+	/*TerminateWindowIDProgram(_T("FTPUploader"));*/
+	TerminateWindowIDProgram(_T("Dit Glass Raw Messenger"));
+	TerminateWindowIDProgram(_T("gnuplot"));
+	KillProcess("wgnuplot.exe");
+}
+
+void CReviewInterface::TerminateWindowIDProgram(CString WindowID)
+{
+	HWND hWnd = ::FindWindow(NULL, WindowID);
+	if (hWnd != NULL)
+	{
+		DWORD ProcessId;
+		GetWindowThreadProcessId(hWnd, &ProcessId);
+		HANDLE hProcess = OpenProcess(MAXIMUM_ALLOWED, FALSE, ProcessId);
+		if (hProcess != NULL)
+		{
+			TerminateProcess(hProcess, 0);
+		}
+
+	}
+}
+/*< LYW 20220426 - #4086 ADD End >*/
 /*< LYW 20220415 - #4086 ADD End >*/
 
 void CReviewInterface::CreateSystemDirectory()

--
Gitblit v1.9.3