亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainfrm.cpp

?? 一個類似爬行的程序,用于了一些數學方法,能用的,也不錯的
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		return FALSE;
	}    


	if (!pThread->CreateThread())   //  Starts execution of a CWinThread object
	{
		AfxMessageBox("Cannot Start New Thread");
		delete pThread;
		pThread = NULL;
		delete pThreadParams;
		return FALSE;
	}    

	pThreadParams->m_threadID = pThread->m_nThreadID;


	// since everything is successful, add the thread to our list

	m_threadList.AddTail(pThread);
	CString string;
	::InterlockedIncrement(&lThreadCount);
	string.Format ("Threads:%d",lThreadCount);
	m_wndStatusBar.SetPaneText (2, (LPCTSTR) string, TRUE);



	return TRUE;


}

void CMainFrame::OnDestroy() 
{
	
	OnToolsKillthread();

	CMDIFrameWnd::OnDestroy();

	
}
void CMainFrame::GetConnected()
{
	DWORD 
dwConnectionTypes = INTERNET_CONNECTION_LAN |
                          INTERNET_CONNECTION_MODEM |
                          INTERNET_CONNECTION_PROXY;
 if (!InternetGetConnectedState(&dwConnectionTypes, 0))
 {
     InternetAutodial(INTERNET_AUTODIAL_FORCE_UNATTENDED,
                    0);
 } 

}

/*************************************
*     Get a File from a URL Location
**************************************/
void CMainFrame::OnToolsGetURL()  

{
	CUrlDlg	 dlg;
	CString str;
	CSpiderApp *pApp = (CSpiderApp*) AfxGetApp();

	char* pFileName = "Urls.log";
	char lpFileName[MAX_PATH];
	strcpy(lpFileName,pApp->m_HomeDir);
	strcat(lpFileName,"\\");
	strcat(lpFileName,pFileName);


	dlg.LoadFile(lpFileName);


	if(dlg.DoModal() != IDOK) return;

	dlg.SaveFile(lpFileName);

	if(!dlg.m_WebFileName.IsEmpty())
	{
		
		BOOL Result= GetURL(dlg.m_WebFileName,NULL,HTTP_GET_FILE,FALSE);

		   if(!Result)
		   {
				str.Format("Error in thread file transfer");
				AfxMessageBox(str, MB_OK);

		   }
	}

	
}



/*************************************
*  Check Broken URLs in a HTML file on the Web
**************************************/
void CMainFrame::OnToolCheckURLs() 
{
	CUrlDlg	 dlg;
	CSpiderApp *pApp = (CSpiderApp*) AfxGetApp();
	HWND hwndNotifyView = NULL;

	char* pFileName = "Urls.log";
	char lpFileName[MAX_PATH];
	strcpy(lpFileName,pApp->m_HomeDir);
	strcat(lpFileName,"\\");
	strcat(lpFileName,pFileName);


	dlg.LoadFile(lpFileName);


	if(dlg.DoModal() != IDOK) return;

	dlg.SaveFile(lpFileName);

	CString str ="";

	if(!dlg.m_WebFileName.IsEmpty())
	{
		if(RobotCheck(dlg.m_WebFileName))
		{
			AfxMessageBox("Robot exclusion text file found.\nGoing to bail out, before we get caught.");
			return;
		}

		CSpiderApp *pApp = (CSpiderApp*) AfxGetApp();
		pApp->ShowURL(dlg.m_WebFileName,str); 
		CMDIChildWnd * pChild =
        ((CMDIFrameWnd*)(AfxGetApp()->m_pMainWnd))->MDIGetActive();
 

		::SendMessage(pChild->m_hWnd,WM_USER_LIST, 1, 0);

		CSpiderList* pActiveView = NULL;
		pActiveView = CSpiderList::GetView();
		if(pActiveView)
		hwndNotifyView = pActiveView->m_hWnd;


		BOOL Result= GetURL(dlg.m_WebFileName,hwndNotifyView,HTTP_CHECK_URL_ROOT,dlg.m_root);

		   if(!Result)
		   {
				str.Format("Error in thread ");
				AfxMessageBox(str, MB_OK);
				return;
		   }

	}
	
	lURLCount = 0;
	str ="URLs:0";
	m_wndStatusBar.SetPaneText (3, (LPCTSTR) str, TRUE);
}

/******************************************
Get a Server Response Header for a given URL
*******************************************/

void CMainFrame::OnToolsGetServerHeader() 
{
	CUrlDlg	 dlg;
	CSpiderApp *pApp = (CSpiderApp*) AfxGetApp();

	char* pFileName = "Urls.log";
	char lpFileName[MAX_PATH];
	strcpy(lpFileName,pApp->m_HomeDir);
	strcat(lpFileName,"\\");
	strcat(lpFileName,pFileName);


	dlg.LoadFile(lpFileName);


	if(dlg.DoModal() != IDOK) return;

	dlg.SaveFile(lpFileName);

	CString str ="";

	if(!dlg.m_WebFileName.IsEmpty())
	{
		CSpiderApp *pApp = (CSpiderApp*) AfxGetApp();
		pApp->ShowURL(dlg.m_WebFileName,str); 


		BOOL Result= GetURL(dlg.m_WebFileName,NULL,HTTP_GET_HEADER,FALSE);

		   if(!Result)
		   {
				str.Format("Error in thread ");
				AfxMessageBox(str, MB_OK);
				return;
		   }

	}
	
}

/******************************************
View the list of URLS that did NOT checked out OK
*******************************************/

void CMainFrame::OnToolsURLsNotFound() 
{
	if(g_nEntries == 0)
	{
		AfxMessageBox("No URL's checked yet!");
		return;
	}

	CString string="";
	CSpiderApp *pApp = (CSpiderApp*) AfxGetApp();
	pApp->ShowURL("Not_Found",string); 
	CSpiderDoc *PDoc = NULL;
	PDoc =CSpiderDoc::GetDoc();

	for (UINT i = 0; i < g_nEntries; i ++)
	{
		if(g_entry[i]->m_Status != 200)
		{
			string.Format("%d...%s...%s",i+1,g_entry[i]->m_URL,g_entry[i]->m_StatusString);
			
			if (PDoc)
				PDoc->CheckURLUpdate(string); 	
		}
	}

}
/******************************************
View the list of all URLS that were checked
*******************************************/
void CMainFrame::OnToolsViewURLList() 
{
	if(g_nEntries == 0)
	{
		AfxMessageBox("No URL's checked yet!");
		return;
	}

	CString string="";
	CSpiderApp *pApp = (CSpiderApp*) AfxGetApp();
	pApp->ShowURL("URL_LIST",string); 
	CSpiderDoc *PDoc = NULL;
	PDoc =CSpiderDoc::GetDoc();

	for (UINT i = 0; i < g_nEntries; i ++)
	{
			string.Format("%d...%s...%s",i+1,g_entry[i]->m_URL,g_entry[i]->m_StatusString);
			
			if (PDoc)
				PDoc->CheckURLUpdate(string); 	
		
	}


}

/***********************************
* Let All the threads  stop,  without crashing the program
************************************/
void CMainFrame::OnToolsThreadsStop() 
{
	int nCount = 0;
	POSITION pos= NULL;
	int nThreadsLeft = m_threadList.GetCount();

	for(int i=0; i<nThreadsLeft; i++)
	{
		if((pos = m_threadList.FindIndex(i))!= NULL )
		{				
			CSpiderThread* pThread = m_threadList.GetAt(pos);
			if(pThread->m_hThread != NULL)
			{
				nCount++;
				pThread->KillThread();
				
			}
		}
	}
		
	CString string;
	string.Format ("Threads:%d",nCount);
	m_wndStatusBar.SetPaneText (2, (LPCTSTR) string, TRUE);


	if(nCount > 0)
	{
		string.Format ("Number of Threads %d \nStill Active ",nCount );
		AfxMessageBox(string);
	}
	
}

void CMainFrame::OnUpdateToolsThreadsStop(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(lThreadCount!=0);
	
}


/***********************************
* Kill off All threads, might lock the program up at times
************************************/

void CMainFrame::OnToolsKillthread() 
{

	int nCount,tCount,i;
	int nThreadsLeft;
	POSITION pos= NULL;
	DWORD dwStatus;

	nCount = 0,tCount=0;
	nThreadsLeft = m_threadList.GetCount();

		for(i=0; i<nThreadsLeft; i++)
		{
			if((pos = m_threadList.FindIndex(i))!= NULL )
			{				
				CSpiderThread* pThread = m_threadList.GetAt(pos);
				if(pThread->m_hThread != NULL)
					pThread->KillThread();

			}
		}
		
		Sleep(200);
		nThreadsLeft = m_threadList.GetCount();

		for(i=0; i<nThreadsLeft; i++)
		{
			if((pos = m_threadList.FindIndex(i))!= NULL )
			{				
				CSpiderThread* pThread = m_threadList.GetAt(pos);
					if(pThread->m_hThread != NULL)
					{
						tCount++;
						pThread->KillThread();

						::GetExitCodeThread(pThread->m_hThread, &dwStatus);
						if (dwStatus == STILL_ACTIVE)
							nCount++;
						else 
							m_threadList.RemoveAt(pos);
						

					}
			}
		}
	
	CString string;
	string.Format ("Threads:%d",nCount);
	m_wndStatusBar.SetPaneText (2, (LPCTSTR) string, TRUE);

	if(nCount > 0)
	{
		string.Format ("Number of Threads %d \nStill Active %d",tCount,nCount );
		AfxMessageBox(string);
	}
	
}

void CMainFrame::OnUpdateToolsKillthread(CCmdUI* pCmdUI) 
{
	int nThreadsLeft = m_threadList.GetCount();

	pCmdUI->Enable(nThreadsLeft != 0);
	
}

/***************************
* for robot exclusion
* will return true if the server has a robots.txt file.
**************************/

BOOL CMainFrame::RobotCheck(LPCTSTR pszURL)
{
	DWORD dwRet = 0;
	BOOL bRet = FALSE;
	CString strServerName;
	CString strObject;
	DWORD   dwServiceType;
	INTERNET_PORT  nPort;
	CMyInternetSession* pSession = NULL;
	CHttpConnection* pServer = NULL;
	CHttpFile* pFile = NULL;

	try
	{
		AfxParseURL(pszURL,dwServiceType,strServerName,strObject,nPort);

	pSession = new CMyInternetSession("Robot",1);
	pSession->SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,30000);
		
		/* The delay value in milliseconds to wait between connection retries.*/
	pSession->SetOption(INTERNET_OPTION_CONNECT_BACKOFF,1000);
		
	
	/* The retry count to use for Internet connection requests. If a connection 
	attempt still fails after the specified number of tries, the request is canceled.
	The default is five. */
	pSession->SetOption(INTERNET_OPTION_CONNECT_RETRIES,2);
    pSession->EnableStatusCallback(TRUE);
	pSession->m_pMainWnd = 	AfxGetMainWnd()->m_hWnd;
	pSession->m_strHttpSite.Format("%s",pszURL);

	pServer = pSession->GetHttpConnection(strServerName,nPort);
	pFile = pServer->OpenRequest(_T("GET"),"/robots.txt");
	pFile->SendRequest();
	if(pFile != NULL)
		pFile->QueryInfoStatusCode(dwRet);
	if(dwRet== 200)
		bRet = TRUE;


		if(pFile != NULL)
		{	pFile->Close();
			delete pFile;
			pFile= NULL;
		}

		

		if (pServer!= NULL)
		{
			pServer->Close();
			delete pServer;
			pServer = NULL;
		
		}


		if (pSession != NULL)
		{
			pSession->Close();
			delete pSession;
			pSession = NULL;
		}

	}
	catch (CInternetException* pEx)
	{
		// catch errors from WinINet
		//pEx->ReportError();
		pEx->Delete();
		bRet = FALSE;
	}

	return bRet;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线影院| 日产欧产美韩系列久久99| www久久精品| 精品国内二区三区| 精品99999| 国产精品少妇自拍| 亚洲欧洲成人精品av97| 亚洲视频一二区| 亚洲夂夂婷婷色拍ww47| 亚洲国产综合在线| 日韩精品电影在线观看| 捆绑调教一区二区三区| 九九**精品视频免费播放| 免费观看91视频大全| 美国十次综合导航| 久久69国产一区二区蜜臀| 日韩av不卡在线观看| 国产成人在线视频网站| 97成人超碰视| 欧美日本高清视频在线观看| 欧美制服丝袜第一页| 91精品国产综合久久精品图片 | 亚洲永久免费av| 亚洲国产精品影院| 久久99久国产精品黄毛片色诱| 国产精品996| 欧美中文字幕亚洲一区二区va在线 | 亚洲精品美国一| 日本vs亚洲vs韩国一区三区二区 | 国产91富婆露脸刺激对白| 91免费观看视频| 欧美电视剧在线看免费| 最新久久zyz资源站| 天使萌一区二区三区免费观看| 国产一区二区三区在线观看精品| 99精品久久99久久久久| 日韩三级高清在线| 亚洲欧美日韩在线| 精品一二三四区| 在线观看日韩国产| 国产精品日韩精品欧美在线| 亚洲h动漫在线| 91在线视频官网| 久久亚洲精品小早川怜子| 亚洲国产一二三| 成人国产电影网| 欧美精品一区视频| 日韩精品电影在线观看| 色香蕉久久蜜桃| 中文字幕第一区二区| 久久激五月天综合精品| 日本道精品一区二区三区| 国产日产精品一区| 久久国产婷婷国产香蕉| 欧美日韩国产一区二区三区地区| 国产精品色哟哟| 国产精品自拍三区| 日韩欧美在线观看一区二区三区| 亚洲一区二区高清| 91碰在线视频| 亚洲特黄一级片| 99热精品一区二区| 日本一二三不卡| 国产精品 日产精品 欧美精品| 日韩亚洲欧美一区二区三区| 亚洲午夜一区二区三区| 欧美视频完全免费看| 亚洲精品网站在线观看| 91亚洲国产成人精品一区二三 | 欧美成人精品高清在线播放| 亚洲国产另类av| 欧美日韩精品一区二区在线播放| 伊人色综合久久天天人手人婷| 国产成人在线网站| 国产精品国产成人国产三级| 国产成人亚洲综合色影视| 久久精品网站免费观看| 国产99精品在线观看| 中文字幕第一区第二区| 91在线观看成人| 一区二区在线观看免费视频播放| 91麻豆国产在线观看| 一区二区三区欧美| 欧美美女一区二区三区| 日本伊人色综合网| 精品av久久707| 成人激情动漫在线观看| 一区二区三区中文字幕电影| 欧美视频在线一区二区三区| 日韩av二区在线播放| 欧美成人免费网站| 成人av电影免费在线播放| 亚洲天堂福利av| 欧美一区二区三区四区视频| 精一区二区三区| 亚洲少妇中出一区| 欧美精品在线一区二区| 国产尤物一区二区在线| 国产精品成人一区二区三区夜夜夜| 97精品久久久午夜一区二区三区 | 精品一区二区三区的国产在线播放| 欧美刺激午夜性久久久久久久| 成人免费高清在线观看| 亚洲午夜精品网| 精品国产乱码久久久久久久| 99久久综合99久久综合网站| 亚洲亚洲精品在线观看| 久久久久久麻豆| 欧美影院精品一区| 国产精品77777竹菊影视小说| 国产精品二三区| 日韩欧美一卡二卡| 色综合婷婷久久| 精品一区二区三区免费视频| 亚洲欧美一区二区久久| 精品捆绑美女sm三区| 91免费观看国产| 国产一区二区精品久久91| 午夜精品影院在线观看| 一区二区三区免费看视频| 国产肉丝袜一区二区| 大美女一区二区三区| 一区二区三区在线视频播放| 精品国产麻豆免费人成网站| 色综合视频一区二区三区高清| 麻豆视频观看网址久久| 亚洲免费在线视频一区 二区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美日韩亚洲综合在线| 国产在线不卡视频| 蜜桃传媒麻豆第一区在线观看| 亚洲欧美日韩一区二区| 亚洲国产精品99久久久久久久久| 91精品国产色综合久久| 欧美网站一区二区| 91丨porny丨蝌蚪视频| 高清国产一区二区三区| 精东粉嫩av免费一区二区三区| 午夜精品影院在线观看| 亚洲第一电影网| 亚洲综合无码一区二区| 亚洲欧美一区二区三区极速播放| 国产视频在线观看一区二区三区| 精品国产免费久久| 欧美成人伊人久久综合网| 日韩欧美在线1卡| 日韩欧美激情四射| 日韩欧美久久一区| 欧美va亚洲va| 2024国产精品视频| 久久青草欧美一区二区三区| 精品免费99久久| 久久精品免费在线观看| 久久久久久久久久久久电影| 久久精品一区四区| 国产蜜臀av在线一区二区三区| 久久久午夜精品理论片中文字幕| 2023国产精华国产精品| 国产亚洲人成网站| 日本一区二区三区视频视频| 中文字幕 久热精品 视频在线 | 3d动漫精品啪啪| 日韩免费看的电影| 久久久久久久久久久久久女国产乱 | 99免费精品在线观看| 91在线一区二区| 欧美日韩午夜在线| 日韩欧美视频一区| 国产欧美精品一区二区色综合| 国产精品国产三级国产普通话蜜臀| 亚洲色图欧洲色图| 日韩vs国产vs欧美| 国产精品 日产精品 欧美精品| gogogo免费视频观看亚洲一| 色94色欧美sute亚洲线路二| 7777精品伊人久久久大香线蕉的| 日韩美女在线视频| 中文字幕一区二区三区乱码在线| 亚洲精品国产无套在线观| 日韩在线播放一区二区| 国产成人av影院| 欧美日韩精品一区二区三区| 精品区一区二区| 国产精品成人网| 日韩av电影免费观看高清完整版| 国产盗摄精品一区二区三区在线 | 国内精品第一页| 91日韩一区二区三区| 日韩一区二区在线看片| 国产精品传媒在线| 男女性色大片免费观看一区二区 | 美女免费视频一区| 91麻豆蜜桃一区二区三区| 欧美一区二区日韩一区二区| 国产精品久久久久aaaa樱花| 日韩电影在线看| 色狠狠一区二区| 国产精品麻豆网站| 久久99久久99| 欧美一区二区播放|