BOOL CTBVAutoLauncher::Run()
{
	if (FALSE == ReadConfig())
	{
		CGlobalClass::GetInstance()->GetLogWriter()->WriteLog(LOG_TYPE_ERROR, L"CTBVAutoLauncher - Falure to read configuration");
		return FALSE;
	}
	
	CGlobalClass::GetInstance()->GetLogWriter()->WriteLog(LOG_TYPE_FYI, L"CTBVAutoLauncher - Start running TBV1 Launcher");
	
	if (FALSE == StartLauncherProcess())
	{
		CGlobalClass::GetInstance()->GetLogWriter()->WriteLog(LOG_TYPE_ERROR, L"CTBVAutoLauncher - Unable to start launcher process");
		return FALSE;
	}

	m_hMainWindow = CLauncherEx::WaitForWindow(m_strBV1WindowClass, m_strBV1WindowTitle, m_dwLauncherTimeOut);
	if (NULL == m_hMainWindow)
	{
		CGlobalClass::GetInstance()->GetLogWriter()->WriteLog(LOG_TYPE_ERROR, L"CTBVAutoLauncher - Waiting for TBV1 Game Window Timeout");
		KillAll();
		return FALSE;
	}

	CMyUtils::KillWindowProcess(m_hMainWindow);

	CreateSourceAndLauncherPath(L"BaVuong2", L"ga2.exe");
	ReleaseProcess();

	CGlobalClass::GetInstance()->GetLogWriter()->WriteLog(LOG_TYPE_FYI, L"CTBVAutoLauncher - Start running TBV2 Launcher");
	m_hMainWindow = StartLauncherWindow(m_strBV2WindowClass, m_strBV2WindowTitle);
	if (NULL == m_hMainWindow)
	{
		CGlobalClass::GetInstance()->GetLogWriter()->WriteLog(LOG_TYPE_ERROR, L"CTBVAutoLauncher - Unable to start launcher process");
		return FALSE;
	}
	CGlobalClass::GetInstance()->GetLogWriter()->WriteLogFormat(LOG_TYPE_FYI, L"CTBVAutoLauncher - Begin sleeping within %u minute(s)", m_dwTimeOutInMinute);
	for (int i = 0; i < m_dwTimeOutInMinute; i++)
	{
		::Sleep(1000*60);
		CGlobalClass::GetInstance()->GetLogWriter()->WriteLogFormat(LOG_TYPE_FYI, L"CTBVAutoLauncher - %d minute(s)", i + 1);
	}
	
	CGlobalClass::GetInstance()->GetLogWriter()->WriteLogFormat(LOG_TYPE_FYI, L"CTBVAutoLauncher - Finish sleeping within %u minute(s)", m_dwTimeOutInMinute);
	CMyUtils::KillWindowProcess(m_hMainWindow);
	
	//::SendMessage(m_hMainWindow, WM_CLOSE, 0, 0);

	return TRUE;
}
Example #2
0
/******************************************************************************
    处理名        :  本类的析构处理
    函数名        :  ~CChannelItem()
    参数          :  无
    返回值        :  无
******************************************************************************/
CChannelItem::~CChannelItem(){
    ReleaseThread();
    ReleaseProcess();
}