|  | @@ -29,6 +29,8 @@ void CDlgService::DoDataExchange(CDataExchange* pDX)
 | 
	
		
			
				|  |  |  	DDX_Control(pDX, IDC_LIST_TASK, m_listTask);
 | 
	
		
			
				|  |  |  	DDX_Control(pDX, BTN_MODIFY_RUNNER_NAME, m_btnModify);
 | 
	
		
			
				|  |  |  	DDX_Control(pDX, BTN_ADD_ANDROID, m_btnAddAndroid);
 | 
	
		
			
				|  |  | +	DDX_Control(pDX, BTN_MI_INIT, m_btnMIInit);
 | 
	
		
			
				|  |  | +	DDX_Control(pDX, BTN_SCBC_INIT, m_btnSCBCInit);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -40,6 +42,8 @@ BEGIN_MESSAGE_MAP(CDlgService, CDialogEx)
 | 
	
		
			
				|  |  |  	ON_WM_TIMER()
 | 
	
		
			
				|  |  |  	ON_NOTIFY(NM_RCLICK, IDC_LIST_DEVICES, &CDlgService::OnNMRClickListDevices)
 | 
	
		
			
				|  |  |  	ON_COMMAND(ID_DEVICES_DEL, &CDlgService::OnDevicesDel)
 | 
	
		
			
				|  |  | +	ON_BN_CLICKED(BTN_MI_INIT, &CDlgService::OnBnClickedMiInit)
 | 
	
		
			
				|  |  | +	ON_BN_CLICKED(BTN_SCBC_INIT, &CDlgService::OnBnClickedScbcInit)
 | 
	
		
			
				|  |  |  END_MESSAGE_MAP()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -63,7 +67,7 @@ BOOL CDlgService::OnInitDialog()
 | 
	
		
			
				|  |  |  	std::thread t([](CDlgService *p) {
 | 
	
		
			
				|  |  |  		while (true)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			std::this_thread::sleep_for(std::chrono::milliseconds(1500));
 | 
	
		
			
				|  |  | +			std::this_thread::sleep_for(std::chrono::milliseconds(2500));
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  |  				CSATClient::GetInstance()->TCPQueryDevices(FALSE);
 | 
	
		
			
				|  |  |  				int nIndex = 0;
 | 
	
	
		
			
				|  | @@ -73,31 +77,32 @@ BOOL CDlgService::OnInitDialog()
 | 
	
		
			
				|  |  |  					_itoa_s(nIndex, szValue, 10);
 | 
	
		
			
				|  |  |  					p->m_listDevices.InsertItem(nIndex, szValue);
 | 
	
		
			
				|  |  |  					if (it->nType == 0)
 | 
	
		
			
				|  |  | -						p->m_listDevices.SetItemText(nIndex, 1, "虚拟");
 | 
	
		
			
				|  |  | +						p->m_listDevices.SetItemText(nIndex, 0, "虚拟");
 | 
	
		
			
				|  |  |  					else if (it->nType == 1)
 | 
	
		
			
				|  |  | -						p->m_listDevices.SetItemText(nIndex, 1, "USB");
 | 
	
		
			
				|  |  | +						p->m_listDevices.SetItemText(nIndex, 0, "USB");
 | 
	
		
			
				|  |  |  					else if (it->nType == 2)
 | 
	
		
			
				|  |  | -						p->m_listDevices.SetItemText(nIndex, 1, "网络");
 | 
	
		
			
				|  |  | -					p->m_listDevices.SetItemText(nIndex, 2, it->szName);
 | 
	
		
			
				|  |  | +						p->m_listDevices.SetItemText(nIndex, 0, "网络");
 | 
	
		
			
				|  |  | +					// 名称;
 | 
	
		
			
				|  |  | +					p->m_listDevices.SetItemText(nIndex, 1, it->szName);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  					if (it->nStatus == 0)
 | 
	
		
			
				|  |  | -						p->m_listDevices.SetItemText(nIndex, 3, "在线");
 | 
	
		
			
				|  |  | +						p->m_listDevices.SetItemText(nIndex, 2, "在线");
 | 
	
		
			
				|  |  |  					else if (it->nStatus == 1)
 | 
	
		
			
				|  |  | -						p->m_listDevices.SetItemText(nIndex, 3, "离线");
 | 
	
		
			
				|  |  | +						p->m_listDevices.SetItemText(nIndex, 2, "离线");
 | 
	
		
			
				|  |  |  					else if ( it->nStatus == 2 )
 | 
	
		
			
				|  |  | -						p->m_listDevices.SetItemText(nIndex, 3, "掉线");
 | 
	
		
			
				|  |  | +						p->m_listDevices.SetItemText(nIndex, 2, "掉线");
 | 
	
		
			
				|  |  |  					else if (it->nStatus == 3)
 | 
	
		
			
				|  |  | -						p->m_listDevices.SetItemText(nIndex, 3, "未认证");
 | 
	
		
			
				|  |  | +						p->m_listDevices.SetItemText(nIndex, 2, "未认证");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -					if (it->nUsageState == 0)
 | 
	
		
			
				|  |  | -						p->m_listDevices.SetItemText(nIndex, 4, "空闲");
 | 
	
		
			
				|  |  | -					else if (it->nUsageState == 1)
 | 
	
		
			
				|  |  | -						p->m_listDevices.SetItemText(nIndex, 4, "繁忙");
 | 
	
		
			
				|  |  | +// 					if (it->nUsageState == 0)
 | 
	
		
			
				|  |  | +// 						p->m_listDevices.SetItemText(nIndex, 4, "空闲");
 | 
	
		
			
				|  |  | +// 					else if (it->nUsageState == 1)
 | 
	
		
			
				|  |  | +// 						p->m_listDevices.SetItemText(nIndex, 4, "繁忙");
 | 
	
		
			
				|  |  |  					nIndex++;
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			
 | 
	
		
			
				|  |  | -			std::this_thread::sleep_for(std::chrono::milliseconds(1500));
 | 
	
		
			
				|  |  | +			std::this_thread::sleep_for(std::chrono::milliseconds(1000));
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  |  				CSATClient::GetInstance()->TCPQueryTasks(FALSE);
 | 
	
		
			
				|  |  |  				int nIndex = 0;
 | 
	
	
		
			
				|  | @@ -158,35 +163,33 @@ HBRUSH CDlgService::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CDlgService::InitCtrl()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	int nIndex = 0;
 | 
	
		
			
				|  |  |  	// 初始化设备列表;
 | 
	
		
			
				|  |  | -	m_listDevices.InsertColumn(0, "No");
 | 
	
		
			
				|  |  | -	m_listDevices.SetColumnWidth(0, 25);
 | 
	
		
			
				|  |  | -	m_listDevices.InsertColumn(1, "类型");
 | 
	
		
			
				|  |  | -	m_listDevices.SetColumnWidth(1, 39);
 | 
	
		
			
				|  |  | -	m_listDevices.InsertColumn(2, "名称");
 | 
	
		
			
				|  |  | -	m_listDevices.SetColumnWidth(2, 125);
 | 
	
		
			
				|  |  | -	m_listDevices.InsertColumn(3, "状态");
 | 
	
		
			
				|  |  | -	m_listDevices.SetColumnWidth(3, 39);
 | 
	
		
			
				|  |  | -	m_listDevices.InsertColumn(4, "使用");
 | 
	
		
			
				|  |  | -	m_listDevices.SetColumnWidth(4, 39);
 | 
	
		
			
				|  |  | +	m_listDevices.InsertColumn(nIndex, "类型");
 | 
	
		
			
				|  |  | +	m_listDevices.SetColumnWidth(nIndex++, 38);
 | 
	
		
			
				|  |  | +	m_listDevices.InsertColumn(nIndex, "TV名称");
 | 
	
		
			
				|  |  | +	m_listDevices.SetColumnWidth(nIndex++, 115);
 | 
	
		
			
				|  |  | +	m_listDevices.InsertColumn(nIndex, "状态");
 | 
	
		
			
				|  |  | +	m_listDevices.SetColumnWidth(nIndex++, 38);
 | 
	
		
			
				|  |  |  	m_listDevices.SetExtendedStyle(m_listDevices.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 初始化任务列表;
 | 
	
		
			
				|  |  |  	m_listTask.InsertColumn(0, "No");
 | 
	
		
			
				|  |  |  	m_listTask.SetColumnWidth(0, 25);
 | 
	
		
			
				|  |  | -	m_listTask.InsertColumn(1, "任务编号");
 | 
	
		
			
				|  |  | +	m_listTask.InsertColumn(1, "脚本名称");
 | 
	
		
			
				|  |  |  	m_listTask.SetColumnWidth(1, 130);
 | 
	
		
			
				|  |  | -	m_listTask.InsertColumn(2, "任务名称");
 | 
	
		
			
				|  |  | +	m_listTask.InsertColumn(2, "状态");
 | 
	
		
			
				|  |  |  	m_listTask.SetColumnWidth(2, 60);
 | 
	
		
			
				|  |  | -	m_listTask.InsertColumn(3, "状态");
 | 
	
		
			
				|  |  | +	m_listTask.InsertColumn(3, "日志");
 | 
	
		
			
				|  |  |  	m_listTask.SetColumnWidth(3, 55);
 | 
	
		
			
				|  |  |  	m_listTask.SetExtendedStyle(m_listTask.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	COLORREF color = RGB(0x87, 0xCE, 0xFA);
 | 
	
		
			
				|  |  |  	// 修改按钮默认样式;
 | 
	
		
			
				|  |  |  	m_btnModify.m_bTransparent = FALSE;
 | 
	
		
			
				|  |  |  	m_btnModify.m_bDontUseWinXPTheme = TRUE;
 | 
	
		
			
				|  |  |  	// 设置背景色;
 | 
	
		
			
				|  |  | -	m_btnModify.SetFaceColor(RGB(0x87,0xCE,0xFA), TRUE);
 | 
	
		
			
				|  |  | +	m_btnModify.SetFaceColor(color, TRUE);
 | 
	
		
			
				|  |  |  	// 消除单击时黑色内圈;
 | 
	
		
			
				|  |  |  	m_btnModify.m_bDrawFocus = FALSE;
 | 
	
		
			
				|  |  |  	// 设置按钮扁平样式;
 | 
	
	
		
			
				|  | @@ -197,13 +200,37 @@ void CDlgService::InitCtrl()
 | 
	
		
			
				|  |  |  	m_btnAddAndroid.m_bTransparent = FALSE;
 | 
	
		
			
				|  |  |  	m_btnAddAndroid.m_bDontUseWinXPTheme = TRUE;
 | 
	
		
			
				|  |  |  	// 设置背景色;
 | 
	
		
			
				|  |  | -	m_btnAddAndroid.SetFaceColor(RGB(0x87, 0xCE, 0xFA), TRUE);
 | 
	
		
			
				|  |  | +	m_btnAddAndroid.SetFaceColor(color, TRUE);
 | 
	
		
			
				|  |  |  	// 消除单击时黑色内圈;
 | 
	
		
			
				|  |  |  	m_btnAddAndroid.m_bDrawFocus = FALSE;
 | 
	
		
			
				|  |  |  	// 设置按钮扁平样式;
 | 
	
		
			
				|  |  |  	m_btnAddAndroid.m_nFlatStyle = CMFCButton::FlatStyle::BUTTONSTYLE_FLAT;
 | 
	
		
			
				|  |  |  	// 设置鼠标形状;
 | 
	
		
			
				|  |  |  	m_btnAddAndroid.SetMouseCursorHand();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	//color = RGB(0x87, 0xCE, 0xFA);
 | 
	
		
			
				|  |  | +	m_btnMIInit.m_bTransparent = FALSE;
 | 
	
		
			
				|  |  | +	m_btnMIInit.m_bDontUseWinXPTheme = TRUE;
 | 
	
		
			
				|  |  | +	// 设置背景色;
 | 
	
		
			
				|  |  | +	m_btnMIInit.SetFaceColor(color, TRUE);
 | 
	
		
			
				|  |  | +	// 消除单击时黑色内圈;
 | 
	
		
			
				|  |  | +	m_btnMIInit.m_bDrawFocus = FALSE;
 | 
	
		
			
				|  |  | +	// 设置按钮扁平样式;
 | 
	
		
			
				|  |  | +	m_btnMIInit.m_nFlatStyle = CMFCButton::FlatStyle::BUTTONSTYLE_FLAT;
 | 
	
		
			
				|  |  | +	// 设置鼠标形状;
 | 
	
		
			
				|  |  | +	m_btnMIInit.SetMouseCursorHand();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	m_btnSCBCInit.m_bTransparent = FALSE;
 | 
	
		
			
				|  |  | +	m_btnSCBCInit.m_bDontUseWinXPTheme = TRUE;
 | 
	
		
			
				|  |  | +	// 设置背景色;
 | 
	
		
			
				|  |  | +	m_btnSCBCInit.SetFaceColor(color, TRUE);
 | 
	
		
			
				|  |  | +	// 消除单击时黑色内圈;
 | 
	
		
			
				|  |  | +	m_btnSCBCInit.m_bDrawFocus = FALSE;
 | 
	
		
			
				|  |  | +	// 设置按钮扁平样式;
 | 
	
		
			
				|  |  | +	m_btnSCBCInit.m_nFlatStyle = CMFCButton::FlatStyle::BUTTONSTYLE_FLAT;
 | 
	
		
			
				|  |  | +	// 设置鼠标形状;
 | 
	
		
			
				|  |  | +	m_btnSCBCInit.SetMouseCursorHand();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CDlgService::FillData2Ctrl()
 | 
	
	
		
			
				|  | @@ -243,52 +270,6 @@ void CDlgService::OnBnClickedAddAndroid()
 | 
	
		
			
				|  |  |  void CDlgService::OnTimer(UINT_PTR nIDEvent)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	// TODO: 在此添加消息处理程序代码和/或调用默认值
 | 
	
		
			
				|  |  | -	if (nIDEvent == 0)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		CSATClient::GetInstance()->TCPQueryDevices(FALSE);
 | 
	
		
			
				|  |  | -		int nIndex = 0;
 | 
	
		
			
				|  |  | -		TCHAR szValue[MAX_PATH] = { 0 };
 | 
	
		
			
				|  |  | -		m_listDevices.DeleteAllItems();
 | 
	
		
			
				|  |  | -		for ( std::vector<SATPROTO::Device>::iterator it = SATData::devices.begin(); it != SATData::devices.end(); it++ ) {
 | 
	
		
			
				|  |  | -			_itoa_s(nIndex, szValue, 10);
 | 
	
		
			
				|  |  | -			m_listDevices.InsertItem(nIndex, szValue);
 | 
	
		
			
				|  |  | -			if ( it->nType == 0 )
 | 
	
		
			
				|  |  | -				m_listDevices.SetItemText(nIndex, 1, "虚拟");
 | 
	
		
			
				|  |  | -			else if ( it->nType == 1 )
 | 
	
		
			
				|  |  | -				m_listDevices.SetItemText(nIndex, 1, "USB");
 | 
	
		
			
				|  |  | -			else if ( it->nType == 2 )
 | 
	
		
			
				|  |  | -				m_listDevices.SetItemText(nIndex, 1, "网络");
 | 
	
		
			
				|  |  | -			m_listDevices.SetItemText(nIndex, 2, it->szName);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			if ( it->nStatus == 0 )
 | 
	
		
			
				|  |  | -				m_listDevices.SetItemText(nIndex, 3, "空闲");
 | 
	
		
			
				|  |  | -			else
 | 
	
		
			
				|  |  | -				m_listDevices.SetItemText(nIndex, 3, "繁忙");
 | 
	
		
			
				|  |  | -			nIndex++;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	else if (nIDEvent == 1)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		CSATClient::GetInstance()->TCPQueryTasks(FALSE);
 | 
	
		
			
				|  |  | -		int nIndex = 0;
 | 
	
		
			
				|  |  | -		m_listTask.DeleteAllItems();
 | 
	
		
			
				|  |  | -		TCHAR szValue[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | -		for ( int i = 0; i < SATData::task_resp.nSize; i++ ) {
 | 
	
		
			
				|  |  | -			
 | 
	
		
			
				|  |  | -			// 任务No;
 | 
	
		
			
				|  |  | -			_itoa_s(SATData::task_resp.ssTasks[i].nTaskId, szValue, 10);
 | 
	
		
			
				|  |  | -			m_listTask.InsertItem(nIndex, szValue);
 | 
	
		
			
				|  |  | -			m_listTask.SetItemText(nIndex, 1, SATData::task_resp.ssTasks[i].szTaskNo);
 | 
	
		
			
				|  |  | -			m_listTask.SetItemText(nIndex, 2, SATData::task_resp.ssTasks[i].szTaskName);
 | 
	
		
			
				|  |  | -			if (SATData::task_resp.ssTasks[i].nStatus == 0)
 | 
	
		
			
				|  |  | -				m_listTask.SetItemText(nIndex, 3, "未执行");
 | 
	
		
			
				|  |  | -			else if ( SATData::task_resp.ssTasks[i].nStatus == 1 )
 | 
	
		
			
				|  |  | -				m_listTask.SetItemText(nIndex, 3, "执行中");
 | 
	
		
			
				|  |  | -			else if (SATData::task_resp.ssTasks[i].nStatus == 2)
 | 
	
		
			
				|  |  | -				m_listTask.SetItemText(nIndex, 3, "完成");
 | 
	
		
			
				|  |  | -			nIndex++;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	CDialogEx::OnTimer(nIDEvent);
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -359,3 +340,25 @@ void CDlgService::OnDevicesDel()
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +void CDlgService::OnBnClickedMiInit()
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +	// TODO: 在此添加控件通知处理程序代码
 | 
	
		
			
				|  |  | +	if (Global::g_Config.strMIInitBat.size())
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		//WinExec(Global::g_Config.strMIInitBat.c_str(), SW_HIDE);
 | 
	
		
			
				|  |  | +		ShellExecute(NULL, _T("open"), Global::g_Config.strMIInitBat.c_str(), NULL, NULL, SW_SHOW);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +void CDlgService::OnBnClickedScbcInit()
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +	if (Global::g_Config.strSCBCInitBat.size())
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		// TODO: 在此添加控件通知处理程序代码
 | 
	
		
			
				|  |  | +		//WinExec(Global::g_Config.strMIInitBat.c_str(), SW_HIDE);
 | 
	
		
			
				|  |  | +		ShellExecute(NULL, _T("open"), Global::g_Config.strSCBCInitBat.c_str(), NULL, NULL, SW_SHOW);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 |